Page MenuHomePhabricator

initWikiConfig.php GrowthExperiments script fatals for brwiki
Closed, ResolvedPublic

Description

-----------------------------------------------------------------
brwiki
-----------------------------------------------------------------
InvalidArgumentException from line 69 of /srv/mediawiki/php-1.37.0-wmf.19/extensions/GrowthExperiments/includes/Config/WikiPageConfigWriterFactory.php: Invalid performer passed
#0 /srv/mediawiki/php-1.37.0-wmf.19/extensions/GrowthExperiments/maintenance/initWikiConfig.php(378): GrowthExperiments\Config\WikiPageConfigWriterFactory->newWikiPageConfigWriter(Object(Title))
#1 /srv/mediawiki/php-1.37.0-wmf.19/extensions/GrowthExperiments/maintenance/initWikiConfig.php(339): GrowthExperiments\Maintenance\InitWikiConfig->initGEConfig(false)
#2 /srv/mediawiki/php-1.37.0-wmf.19/maintenance/doMaintenance.php(108): GrowthExperiments\Maintenance\InitWikiConfig->execute()
#3 /srv/mediawiki/php-1.37.0-wmf.19/extensions/GrowthExperiments/maintenance/initWikiConfig.php(448): require_once('/srv/mediawiki/...')
#4 /srv/mediawiki/multiversion/MWScript.php(116): require_once('/srv/mediawiki/...')
#5 {main}

Likely the system user fails to be used with WikiPageConfigWriter for some reason. To be investigated in current sprint, as it blocks T289680.

Event Timeline

Mentioned in SAL (#wikimedia-operations) [2021-08-25T14:40:19Z] <urbanecm> Run User::newSystemUser( 'MediaWiki default', ['steal' => true] ) in brwiki shell.php session (T289690)

Mentioned in SAL (#wikimedia-operations) [2021-08-25T14:42:48Z] <urbanecm> [urbanecm@mwmaint2002 /srv/mediawiki/php]$ mwscript extensions/GrowthExperiments/maintenance/initWikiConfig.php --wiki=brwiki # T289690, T289680

This happens because MediaWiki default is not properly recognized as a system account. I stealed it by running User::newSystemUser( 'MediaWiki default', ['steal' => true] ) manually.

[urbanecm@mwmaint2002 ~]$ sql brwiki
wikiadmin@10.192.16.105(brwiki)> select user_id, user_name, user_token, user_password, user_email from user where user_name='MediaWiki default'\G
*************************** 1. row ***************************
      user_id: 350
    user_name: MediaWiki default
   user_token: <redacted, properly formatted token>
user_password:
   user_email:
1 row in set (0.00 sec)

wikiadmin@10.192.16.105(brwiki)> Bye
[urbanecm@mwmaint2002 ~]$ mwscript shell.php brwiki
Psy Shell v0.10.5 (PHP 7.2.31-1+0~20200514.41+debian9~1.gbpe2a56b+wmf1+icu63 — cli) by Justin Hileman
>>> User::newSystemUser( 'MediaWiki default' )
=> null
>>> \GrowthExperiments\GrowthExperimentsServices::wrap(\MediaWiki\MediaWikiServices::getInstance())->getWikiPageConfigWriterFactory()->newWikiPageConfigWriter(Title::newFromText('MediaWiki:NewcomerTasks.json'))
InvalidArgumentException with message 'Invalid performer passed'
>>> User::newSystemUser( 'MediaWiki default', ['steal' => true] )
=> User {#3140
     +mId: 350,
     +mName: "MediaWiki default",
     +mActorId: 3645,
     +mRealName: "",
     +mEmail: "",
     +mTouched: "20210825143950",
     +mEmailAuthenticated: null,
     +mFrom: "id",
     +mBlockedby: -1,
     +mHideName: null,
     +mBlock: null,
   }
>>> \GrowthExperiments\GrowthExperimentsServices::wrap(\MediaWiki\MediaWikiServices::getInstance())->getWikiPageConfigWriterFactory()->newWikiPageConfigWriter(Title::newFromText('MediaWiki:NewcomerTasks.json'))
=> GrowthExperiments\Config\WikiPageConfigWriter {#3141}
>>> ^D
Exit:  Ctrl+D
[urbanecm@mwmaint2002 ~]$ sql brwiki
wikiadmin@10.192.16.105(brwiki)> select user_id, user_name, user_token, user_password, user_email from user where user_name='MediaWiki default'\G
*************************** 1. row ***************************
      user_id: 350
    user_name: MediaWiki default
   user_token: *** INVALID ***
user_password:
   user_email:
1 row in set (0.00 sec)

wikiadmin@10.192.16.105(brwiki)> Bye
[urbanecm@mwmaint2002 ~]$ cd /srv/mediawiki/php
[urbanecm@mwmaint2002 /srv/mediawiki/php]$ mwscript extensions/GrowthExperiments/maintenance/initWikiConfig.php --wiki=brwiki
[urbanecm@mwmaint2002 /srv/mediawiki/php]$

WikiPageConfigWriterFactory should likely just steal that user automatically, it's in $wgReservedUsernames for quite some time, so no harm done. Uploading a patch for that.

Change 714779 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] WikiPageConfigWriterFactory: Steal maintenance user if needed

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

Mentioned in SAL (#wikimedia-operations) [2021-08-25T15:22:30Z] <urbanecm> Run User::newSystemUser( 'MediaWiki default', ['steal' => true] ) in mywiki shell.php session (same issue as T289690)

Change 714779 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] WikiPageConfigWriterFactory: Steal maintenance user if needed

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