@Keegan reports the following reproduction procedure:
- Create three accounts: Test 8, Test 9 and Test 10.
- Make one edit with Test 10
- In Special:GlobalUserMerge, specify all three accounts in the "usernames" field. In the "new user" field, specify Test 8. Submit the form.
Then at Special:CentralAuth/Test_8, an exception is thrown:
Exception encountered, of type "Exception" [c91625db] /wiki/Special:CentralAuth/Test_8 Exception from line 2116 of /srv/mediawiki/php-master/extensions/CentralAuth/includes/CentralAuthUser.php: Could not find local user data for Test 8@metawiki Backtrace: #0 /srv/mediawiki/php-master/extensions/CentralAuth/includes/CentralAuthUser.php(2056): CentralAuthUser->localUserData(string) #1 /srv/mediawiki/php-master/extensions/CentralAuth/includes/specials/SpecialCentralAuth.php(94): CentralAuthUser->queryAttached() #2 /srv/mediawiki/php-master/includes/specialpage/SpecialPage.php(384): SpecialCentralAuth->execute(string) #3 /srv/mediawiki/php-master/includes/specialpage/SpecialPageFactory.php(581): SpecialPage->run(string) #4 /srv/mediawiki/php-master/includes/MediaWiki.php(267): SpecialPageFactory::executePath(Title, RequestContext) #5 /srv/mediawiki/php-master/includes/MediaWiki.php(566): MediaWiki->performRequest() #6 /srv/mediawiki/php-master/includes/MediaWiki.php(414): MediaWiki->main() #7 /srv/mediawiki/php-master/index.php(46): MediaWiki->run() #8 /srv/mediawiki/w/index.php(3): include(string) #9 {main}
This is apparently because as MergeUser finishes merging Test 8 with itself, MergeUser::deleteUser() deletes the Test 8 row from the local user table.
The local equivalent special page, Special:UserMerge, has validation preventing the source from being the same as the destination, but Special:GlobalUserMerge lacks that validation.