Page MenuHomePhabricator

orphans.php --fix breaks with 'not locked' error
Closed, DeclinedPublicBUG REPORT

Description

If I run orphans.php --fix I get the following error:

[xxx]$  php mai*/orphans.php --fix
Checking for orphan revision table entries... (this may take a while on a large wiki)
Wikimedia\Rdbms\DBQueryError from line 1799 of /home/xxx/includes/libs/rdbms/database/Database.php: Error 1100: Table 'temp_rev_comment' was not locked with LOCK TABLES (xxxDBHostxxx)
Function: Orphans::checkOrphans
Query: SELECT  rev_id,rev_page,rev_timestamp,comment_rev_comment.comment_text AS `rev_comment_text`,comment_rev_comment.comment_data AS `rev_comment_data`,comment_rev_comment.comment_id AS `rev_comment_cid`,actor_rev_user.actor_user AS `rev_user`,actor_rev_user.actor_name AS `rev_user_text`,temp_rev_user.revactor_actor AS `rev_actor`  FROM `mw_revision` LEFT JOIN `mw_page` ON ((rev_page=page_id)) JOIN `mw_revision_comment_temp` `temp_rev_comment` ON ((temp_rev_comment.revcomment_rev = rev_id)) JOIN `mw_comment` `comment_rev_comment` ON ((comment_rev_comment.comment_id = temp_rev_comment.revcomment_comment_id)) JOIN `mw_revision_actor_temp` `temp_rev_user` ON ((temp_rev_user.revactor_rev = rev_id)) JOIN `mw_actor` `actor_rev_user` ON ((actor_rev_user.actor_id = temp_rev_user.revactor_actor))   WHERE page_id IS NULL

#0 /home/xxx/includes/libs/rdbms/database/Database.php(1783): Wikimedia\Rdbms\Database->getQueryException('Table 'temp_rev...', 1100, 'SELECT  rev_id,...', 'Orphans::checkO...')
#1 /home/xxx/includes/libs/rdbms/database/Database.php(1758): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('Table 'temp_rev...', 1100, 'SELECT  rev_id,...', 'Orphans::checkO...')
#2 /home/xxx/includes/libs/rdbms/database/Database.php(1302): Wikimedia\Rdbms\Database->reportQueryError('Table 'temp_rev...', 1100, 'SELECT  rev_id,...', 'Orphans::checkO...', false)
#3 /home/xxx/includes/libs/rdbms/database/Database.php(2002): Wikimedia\Rdbms\Database->query('SELECT  rev_id,...', 'Orphans::checkO...', 32)
#4 /home/xxx/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->select(Array, Array, Array, 'Orphans::checkO...', Array, Array)
#5 /home/xxx/includes/libs/rdbms/database/DBConnRef.php(295): Wikimedia\Rdbms\DBConnRef->__call('select', Array)
#6 /home/xxx/maintenance/orphans.php(95): Wikimedia\Rdbms\DBConnRef->select(Array, Array, Array, 'Orphans::checkO...', Array, Array)
#7 /home/xxx/maintenance/orphans.php(54): Orphans->checkOrphans(true)
#8 /home/xxx/maintenance/doMaintenance.php(108): Orphans->execute()
#9 /home/xxx/maintenance/orphans.php(222): require_once('/home/floten1/w...')
#10 {main}

MediaWiki 1.38.0-alpha (dc25ae5) 17:49, 2021 December 23
PHP 7.4.25 (cgi-fcgi)
MySQL 5.7.29-log

Event Timeline

I just tried this on a different wiki I have that isn't alpha, and get essentially the same error. orphans.php works fine, actually doesn't find anything on that wiki, but if I run it with --fix it crashes.
MediaWiki 1.37.1
PHP 7.4.25 (cgi-fcgi)
MySQL 8.0.25-0ubuntu0.20.04.1