Page MenuHomePhabricator

1.36->1.37 upgrade broken against Postgres
Closed, ResolvedPublicBUG REPORT

Description

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

What happens?:

Upgrade fails with this error:

Changing 'user.user_token' to not allow NULLs
Wikimedia\Rdbms\DBQueryError from line 1809 of /var/www/html/includes/libs/rdbms/database/Database.php: Error 23502: ERROR:  column "user_token" of relation "user" contains null values

Function: PostgresUpdater::changeNullableField
Query: ALTER TABLE "user" ALTER user_token SET NOT NULL

#0 /var/www/html/includes/libs/rdbms/database/Database.php(1793): Wikimedia\Rdbms\Database->getQueryException('ERROR:  column ...', '23502', 'ALTER TABLE "us...', 'PostgresUpdater...')
#1 /var/www/html/includes/libs/rdbms/database/Database.php(1768): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('ERROR:  column ...', '23502', 'ALTER TABLE "us...', 'PostgresUpdater...')
#2 /var/www/html/includes/libs/rdbms/database/Database.php(1327): Wikimedia\Rdbms\Database->reportQueryError('ERROR:  column ...', '23502', 'ALTER TABLE "us...', 'PostgresUpdater...', false)
#3 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->query('ALTER TABLE "us...', 'PostgresUpdater...', 0)
#4 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(297): Wikimedia\Rdbms\DBConnRef->__call('query', Array)
#5 /var/www/html/includes/installer/PostgresUpdater.php(976): Wikimedia\Rdbms\DBConnRef->query('ALTER TABLE "us...', 'PostgresUpdater...')
#6 /var/www/html/includes/installer/DatabaseUpdater.php(533): PostgresUpdater->changeNullableField('"user"', 'user_token', 'NOT NULL', true)
#7 /var/www/html/includes/installer/DatabaseUpdater.php(497): DatabaseUpdater->runUpdates(Array, false)
#8 /var/www/html/maintenance/update.php(193): DatabaseUpdater->doUpdates(Array)
#9 /var/www/html/maintenance/doMaintenance.php(108): UpdateMediaWiki->execute()
#10 /var/www/html/maintenance/update.php(264): require_once('/var/www/html/m...')
#11 {main}

What should have happened instead?:

Upgrade should have succeeded

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

Upgrading from MW 1.36.4 or below to 1.37 or above (including 1.39)

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

Seems to be the same issue as T297031, but the patch there didn't actually fix this issue - wasn't sure whether to reopen it or open a new bug.

Event Timeline

Change 872984 had a related patch set uploaded (by Func; author: Func):

[mediawiki/core@master] PostgresUpdater: Move setDefault ahead of changeNullableField

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

For your second error on 'revision.rev_comment_id', it was fixed in T297031, you should try to use the last release of 1.37 instead.

Change 872984 merged by jenkins-bot:

[mediawiki/core@master] PostgresUpdater: Move setDefault ahead of changeNullableField

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

Change 873748 had a related patch set uploaded (by Func; author: Func):

[mediawiki/core@REL1_39] PostgresUpdater: Move setDefault ahead of changeNullableField

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

Change 873749 had a related patch set uploaded (by Func; author: Func):

[mediawiki/core@REL1_38] PostgresUpdater: Move setDefault ahead of changeNullableField

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

Change 873748 merged by jenkins-bot:

[mediawiki/core@REL1_39] PostgresUpdater: Move setDefault ahead of changeNullableField

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

Change 873749 merged by jenkins-bot:

[mediawiki/core@REL1_38] PostgresUpdater: Move setDefault ahead of changeNullableField

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

Func claimed this task.

Resolved. 1.37 was EOL, so no backport.