Page MenuHomePhabricator

Backport 8fa6c2c4d8a9d1b046167f8c7809fe501b19c199 to REL1_44
Open, Needs TriagePublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • Open Special:UserMerge
  • Try to merge a user into "Anonymous" and check "Delete old user".

What happens?:

[891b0b30a1141afa58b08fdb] /title/Special:UserMerge Wikimedia\Rdbms\DBQueryError: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading or after adding a new extension?

Please see https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading and https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:How_to_debug for more information.

Error 1146: Table 'mediawiki.revision_actor_temp' doesn't exist
Function: MergeUser::mergeDatabaseTables
Query: UPDATE `revision_actor_temp` SET revactor_actor = 27 WHERE revactor_actor = 30

Backtrace:

from /srv/http/htdocs/includes/libs/rdbms/database/Database.php(1232)
#0 /srv/http/htdocs/includes/libs/rdbms/database/Database.php(1216): Wikimedia\Rdbms\Database->getQueryException()
#1 /srv/http/htdocs/includes/libs/rdbms/database/Database.php(1190): Wikimedia\Rdbms\Database->getQueryExceptionAndLog()
#2 /srv/http/htdocs/includes/libs/rdbms/database/Database.php(647): Wikimedia\Rdbms\Database->reportQueryError()
#3 /srv/http/htdocs/includes/libs/rdbms/database/Database.php(1518): Wikimedia\Rdbms\Database->query()
#4 /srv/http/htdocs/includes/libs/rdbms/database/DBConnRef.php(127): Wikimedia\Rdbms\Database->update()
#5 /srv/http/htdocs/includes/libs/rdbms/database/DBConnRef.php(413): Wikimedia\Rdbms\DBConnRef->__call()
#6 /srv/http/htdocs/includes/libs/rdbms/querybuilder/UpdateQueryBuilder.php(332): Wikimedia\Rdbms\DBConnRef->update()
#7 /srv/http/htdocs/extensions/UserMerge/includes/MergeUser.php(405): Wikimedia\Rdbms\UpdateQueryBuilder->execute()
#8 /srv/http/htdocs/extensions/UserMerge/includes/MergeUser.php(71): MergeUser->mergeDatabaseTables()
#9 /srv/http/htdocs/extensions/UserMerge/includes/SpecialUserMerge.php(159): MergeUser->merge()
#10 /srv/http/htdocs/includes/htmlform/HTMLForm.php(825): SpecialUserMerge->onSubmit()
#11 /srv/http/htdocs/includes/htmlform/HTMLForm.php(706): MediaWiki\HTMLForm\HTMLForm->trySubmit()
#12 /srv/http/htdocs/includes/htmlform/HTMLForm.php(722): MediaWiki\HTMLForm\HTMLForm->tryAuthorizedSubmit()
#13 /srv/http/htdocs/includes/specialpage/FormSpecialPage.php(211): MediaWiki\HTMLForm\HTMLForm->show()
#14 /srv/http/htdocs/includes/specialpage/SpecialPage.php(734): MediaWiki\SpecialPage\FormSpecialPage->execute()
#15 /srv/http/htdocs/includes/specialpage/SpecialPageFactory.php(1731): MediaWiki\SpecialPage\SpecialPage->run()
#16 /srv/http/htdocs/includes/actions/ActionEntryPoint.php(499): MediaWiki\SpecialPage\SpecialPageFactory->executePath()
#17 /srv/http/htdocs/includes/actions/ActionEntryPoint.php(143): MediaWiki\Actions\ActionEntryPoint->performRequest()
#18 /srv/http/htdocs/includes/MediaWikiEntryPoint.php(202): MediaWiki\Actions\ActionEntryPoint->execute()
#19 /srv/http/htdocs/index.php(58): MediaWiki\MediaWikiEntryPoint->run()
#20 {main}

What should have happened instead?:

Merge from X (Y) to Anonymous (0) is complete.

X (Y) has been deleted.

Software version (on Special:Version page; skip for WMF-hosted wikis like Wikipedia):

MediaWiki 1.44.0
PHP 8.4.11 (fpm-fcgi)
ICU 76.1
MariaDB 11.8.3-MariaDB
UserMerge 1.10.2 (7aef163)

Other information (browser name/version, screenshots, etc.):

Cherry-picking 8fa6c2c4d8a9d1b046167f8c7809fe501b19c199 fixes it.

Please backport the commit to the REL1_44 branch.

Event Timeline

Yeah, CI is also broken in the REL1_44 branch due to this:

1) MergeUserTest::testBasicMerge
Wikimedia\Rdbms\DBQueryError: Error 1146: Table 'wikidb.unittest_revision_actor_temp' doesn't exist
Function: MergeUser::mergeDatabaseTables
Query: SELECT  revactor_rev  FROM `unittest_revision_actor_temp` `revision_actor_temp`    WHERE revactor_actor = 1  LIMIT 200  


/workspace/src/includes/libs/rdbms/database/Database.php:1232
/workspace/src/includes/libs/rdbms/database/Database.php:1216
/workspace/src/includes/libs/rdbms/database/Database.php:1190
/workspace/src/includes/libs/rdbms/database/Database.php:647
/workspace/src/includes/libs/rdbms/database/Database.php:1367
/workspace/src/includes/libs/rdbms/database/DBConnRef.php:127
/workspace/src/includes/libs/rdbms/database/DBConnRef.php:351
/workspace/src/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php:762
/workspace/src/extensions/UserMerge/includes/MergeUser.php:418
/workspace/src/extensions/UserMerge/includes/MergeUser.php:71
/workspace/src/extensions/UserMerge/tests/phpunit/MergeUserTest.php:55

Change #1200366 had a related patch set uploaded (by Daimona Eaytoy; author: XtexChooser):

[mediawiki/extensions/UserMerge@REL1_44] MergeUser: ignore tables that do not exist

https://gerrit.wikimedia.org/r/1200366

(On a related note, I'm wondering if we could just stop referencing the revision_actor_temp table since it's been dropped long ago.)

Change #1200366 merged by jenkins-bot:

[mediawiki/extensions/UserMerge@REL1_44] MergeUser: ignore tables that do not exist

https://gerrit.wikimedia.org/r/1200366

(On a related note, I'm wondering if we could just stop referencing the revision_actor_temp table since it's been dropped long ago.)

Filed as T409756.