/**
  * @param string $wiki
  * @param DatabaseBase $dbw
  * @return stdClass[]
  */
 protected function findUsers($wiki, DatabaseBase $dbw)
 {
     $rowsToRename = array();
     $updates = new UsersToRenameDatabaseUpdates($dbw);
     $rows = $updates->findUsers($wiki, UsersToRenameDatabaseUpdates::NOTIFIED, $this->mBatchSize);
     foreach ($rows as $row) {
         $user = User::newFromName($row->utr_name);
         $caUser = new CentralAuthUser($row->utr_name);
         if (!$user->getId()) {
             $this->log("'{$row->utr_name}' has been renamed since the last was list generated.");
             $updates->remove($row->utr_name, $row->utr_wiki);
         } elseif ($caUser->attachedOn($row->utr_wiki)) {
             $this->log("'{$row->utr_name}' has become attached to a global account since the list as last generated.");
             $updates->remove($row->utr_name, $row->utr_wiki);
         } elseif (!User::isUsableName($row->utr_name)) {
             // Reserved for a system account, ignore
             $this->log("'{$row->utr_name}' is a reserved username, skipping.");
             $updates->remove($row->utr_name, $row->utr_wiki);
         } else {
             $rowsToRename[] = $row;
         }
     }
     return $rowsToRename;
 }