Page MenuHomePhabricator

maintenance/postgres: patch-module_deps-pk and patch-l10n_cache-pk are not idempotent
Closed, ResolvedPublicBUG REPORT

Description

When upgrading a MW 1.35 install with Postgres to 1.39.3 using maintenance/update.php, I got this error:

Adding index l10n_cache_pkey to table l10n_cache...Wikimedia\Rdbms\DBQueryError from line 1618 of /var/www/html/includes/libs/rdbms/database/Database.php: Error 42704: ERROR:  index "l10n_cache_lc_lang_key" does not exist

Function: Wikimedia\Rdbms\Database::sourceFile( /var/www/html/maintenance/postgres/archives/patch-l10n_cache-pk.sql )
Query: DROP INDEX l10n_cache_lc_lang_key


#0 /var/www/html/includes/libs/rdbms/database/Database.php(1602): Wikimedia\Rdbms\Database->getQueryException('ERROR:  index "...', '42704', 'DROP INDEX l10n...', 'Wikimedia\\Rdbms...')
#1 /var/www/html/includes/libs/rdbms/database/Database.php(1576): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('ERROR:  index "...', '42704', 'DROP INDEX l10n...', 'Wikimedia\\Rdbms...')
#2 /var/www/html/includes/libs/rdbms/database/Database.php(952): Wikimedia\Rdbms\Database->reportQueryError('ERROR:  index "...', '42704', 'DROP INDEX l10n...', 'Wikimedia\\Rdbms...', false)
#3 /var/www/html/includes/libs/rdbms/database/Database.php(3302): Wikimedia\Rdbms\Database->query('DROP INDEX l10n...', 'Wikimedia\\Rdbms...')
#4 /var/www/html/includes/libs/rdbms/database/Database.php(3241): Wikimedia\Rdbms\Database->sourceStream(Resource id #804, NULL, NULL, 'Wikimedia\\Rdbms...', NULL)
#5 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(103): Wikimedia\Rdbms\Database->sourceFile('/var/www/html/m...')
#6 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(807): Wikimedia\Rdbms\DBConnRef->__call('sourceFile', Array)
#7 /var/www/html/includes/installer/DatabaseUpdater.php(718): Wikimedia\Rdbms\DBConnRef->sourceFile('/var/www/html/m...')
#8 /var/www/html/includes/installer/DatabaseUpdater.php(819): DatabaseUpdater->applyPatch('/var/www/html/m...', false, 'Adding index l1...')
#9 /var/www/html/includes/installer/DatabaseUpdater.php(547): DatabaseUpdater->addIndex('l10n_cache', 'l10n_cache_pkey', 'patch-l10n_cach...')
#10 /var/www/html/includes/installer/DatabaseUpdater.php(511): DatabaseUpdater->runUpdates(Array, false)
#11 /var/www/html/maintenance/update.php(202): DatabaseUpdater->doUpdates(Array)
#12 /var/www/html/maintenance/includes/MaintenanceRunner.php(309): UpdateMediaWiki->execute()
#13 /var/www/html/maintenance/doMaintenance.php(85): MediaWiki\Maintenance\MaintenanceRunner->run()
#14 /var/www/html/maintenance/update.php(312): require_once('/var/www/html/m...')
#15 {main}

and similar for index md_module_skin from maintenance/postgres/archives/patch-module_deps-pk.sql.

It may be worth these DROP INDEX statements having an IF EXISTS so that they are more idempotent

Software version (skip for WMF-hosted wikis like Wikipedia): 1.35.8 -> 1.39.3

Event Timeline

Change 920333 had a related patch set uploaded (by MarksPolakovs; author: MarksPolakovs):

[mediawiki/core@master] Improve idempotency of postgres index upgrades

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

Change 920333 merged by jenkins-bot:

[mediawiki/core@master] Improve idempotency of postgres index upgrades

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

Change 920728 had a related patch set uploaded (by MarksPolakovs; author: MarksPolakovs):

[mediawiki/core@REL1_39] Improve idempotency of postgres index upgrades

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

Change 920728 merged by jenkins-bot:

[mediawiki/core@REL1_39] Improve idempotency of postgres index upgrades

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

Marksomnian triaged this task as Low priority.