Page MenuHomePhabricator

addWiki.php is broken (2022-07)
Closed, ResolvedPublic

Description

addWiki.php stopped working in 2022-07. It throws a couple of errors:

First error
[urbanecm@mwmaint1002 ~]$ mwscript extensions/WikimediaMaintenance/addWiki.php --wiki=muswiki blk wikipedia blkwiki blk.wikipedia.org
Creating database blkwiki for blk.wikipedia (ပအအိုဝ်ႏဘာႏသာႏ)
RuntimeException from line 1610 of /srv/mediawiki/php-1.39.0-wmf.19/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Cannot close DBConnRef instance; it must be shareable
#0 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(112): Wikimedia\Rdbms\LoadBalancer->closeConnection(Object(Wikimedia\Rdbms\DBConnRef))
#1 /srv/mediawiki/php-1.39.0-wmf.19/maintenance/includes/MaintenanceRunner.php(309): AddWiki->execute()
#2 /srv/mediawiki/php-1.39.0-wmf.19/maintenance/doMaintenance.php(85): MediaWiki\Maintenance\MaintenanceRunner->run()
#3 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(491): require_once('/srv/mediawiki/...')
#4 /srv/mediawiki/multiversion/MWScript.php(120): require_once('/srv/mediawiki/...')
#5 {main}
[urbanecm@mwmaint1002 ~]$

This error was workarounded by commenting lines 112, 139, 164 and 395 out at mwmaint1002, so the creation can finish. After I did that, the following error happened:

Second error
[urbanecm@mwmaint1002 ~]$ mwscript extensions/WikimediaMaintenance/addWiki.php --wiki=muswiki --skipclusters=main blk wikipedia blkwiki blk.wikipedia.org
Creating database blkwiki for blk.wikipedia (ပအိုဝ်ႏဘာႏသာႏ)
Initialising tables
RuntimeException from line 4119 of /srv/mediawiki/php-1.39.0-wmf.19/includes/libs/rdbms/database/Database.php: Could not open "/srv/mediawiki/php-1.39.0-wmf.19/extensions/Math/db/mathoid.mysql.sql"
#0 /srv/mediawiki/php-1.39.0-wmf.19/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->sourceFile('/srv/mediawiki/...')
#1 /srv/mediawiki/php-1.39.0-wmf.19/includes/libs/rdbms/database/DBConnRef.php(758): Wikimedia\Rdbms\DBConnRef->__call('sourceFile', Array)
#2 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(289): Wikimedia\Rdbms\DBConnRef->sourceFile('/srv/mediawiki/...')
#3 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(123): AddWiki->createMainClusterSchema(Object(Wikimedia\Rdbms\DBConnRef), 'blkwiki', 'wikipedia')
#4 /srv/mediawiki/php-1.39.0-wmf.19/maintenance/includes/MaintenanceRunner.php(309): AddWiki->execute()
#5 /srv/mediawiki/php-1.39.0-wmf.19/maintenance/doMaintenance.php(85): MediaWiki\Maintenance\MaintenanceRunner->run()
#6 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(487): require_once('/srv/mediawiki/...')
#7 /srv/mediawiki/multiversion/MWScript.php(120): require_once('/srv/mediawiki/...')
#8 {main}
[urbanecm@mwmaint1002 ~]$

This was already fixed by https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikimediaMaintenance/+/804639, but the patch did not make wmf.19, while the one that moved the files did. After workarounding this error, a third error was thrown:

Third error
[urbanecm@mwmaint1002 ~]$ mwscript extensions/WikimediaMaintenance/addWiki.php --wiki=muswiki --skipclusters=main blk wikipedia blkwiki blk.wikipedia.org
Creating database blkwiki for blk.wikipedia (ပအိုဝ်ႏဘာႏသာႏ)
Initialising external storage cluster26...
Initialising external storage cluster27...
Writing main page to အဓိကလိတ်မဲ့ငါ
Writing sidebar donate link to MediaWiki:Sitesupport-url
done.
InvalidArgumentException from line 216 of /srv/mediawiki/php-1.39.0-wmf.19/includes/filebackend/FileBackendGroup.php: No backend defined with the name ''.
#0 /srv/mediawiki/php-1.39.0-wmf.19/includes/filebackend/FileBackendGroup.php(187): FileBackendGroup->config(NULL)
#1 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/filebackend/setZoneAccess.php(15): FileBackendGroup->get(NULL)
#2 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(238): SetZoneAccess->execute()
#3 /srv/mediawiki/php-1.39.0-wmf.19/maintenance/includes/MaintenanceRunner.php(309): AddWiki->execute()
#4 /srv/mediawiki/php-1.39.0-wmf.19/maintenance/doMaintenance.php(85): MediaWiki\Maintenance\MaintenanceRunner->run()
#5 /srv/mediawiki/php-1.39.0-wmf.19/extensions/WikimediaMaintenance/addWiki.php(487): require_once('/srv/mediawiki/...')
#6 /srv/mediawiki/multiversion/MWScript.php(120): require_once('/srv/mediawiki/...')
#7 {main}
[urbanecm@mwmaint1002 ~]$

Those three errors need to be fixed before wiki creation can continue.

Event Timeline

Looking into it now. But i have no idea how to test addWiki locally.

Yes, I see the issue. Manipulating the $mOptions field no longer has any effect. I'll work on a fix.

Change 815291 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):

[mediawiki/core@master] Maintenance: allow legacy mOptions field to be manipulated.

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

Change 815293 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):

[mediawiki/extensions/WikimediaMaintenance@master] Use the new setOption() method.

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

Change 815301 had a related patch set uploaded (by Ladsgroup; author: Amir Sarabadani):

[mediawiki/extensions/WikimediaMaintenance@master] addWiki: Remove closeConnection()

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

Change 815301 merged by jenkins-bot:

[mediawiki/extensions/WikimediaMaintenance@master] addWiki: Remove closeConnection()

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

Change 815291 merged by jenkins-bot:

[mediawiki/core@master] Maintenance: allow legacy mOptions field to be manipulated.

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

Change 815293 merged by jenkins-bot:

[mediawiki/extensions/WikimediaMaintenance@master] Use the new setOption() method.

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

Looking into it now. But i have no idea how to test addWiki locally.

Thanks for the fixes! Unfortunately, the script is nearly impossible to test (locally, or in production), at least not end-to-end. I merged the addWiki change. We have three wikis pending creation now, so we'll see for certain whether it fixed the issue soon.

Apparently, the SecurePoll tables (or at least the securepoll_elections table) didn't get created on blkwiki, and this is causing an error (on votewiki) that prevents editing polls. This needs to be fixed very soon because there is an upcoming board election. See T314006: Can't edit SecurePoll poll on votewiki (DBQueryError): Error 1146: Table 'blkwiki.securepoll_elections' doesn't exist.

Apparently, the SecurePoll tables (or at least the securepoll_elections table) didn't get created on blkwiki, and this is causing an error (on votewiki) that prevents editing polls. This needs to be fixed very soon because there is an upcoming board election. See T314006: Can't edit SecurePoll poll on votewiki (DBQueryError): Error 1146: Table 'blkwiki.securepoll_elections' doesn't exist.

Yes, that happened because addWiki.php (which is supposed to do the creation) got broken in the middle, and I had to run parts of it manually. It's possible I didn't create SecurePoll's tables for that reason. I see @Ladsgroup already created them, so this should be all fixed now.

With the next few pending wikis, we should be okay (assuming fixes linked do the ticket did the trick, which they should've).

I scheduled the three pending wikis for August 17, 2022, as all the issues mentioned in this task should be fixed now. Assuming the creations will go fine, I'll close this task on Wednesday.

This instance of addWiki issues was resolved.