Page MenuHomePhabricator

CentralAuth tests are broken
Closed, ResolvedPublic

Event Timeline

Paladox triaged this task as High priority.Jun 25 2017, 7:23 PM

I've did this https://gerrit.wikimedia.org/r/#/c/361307/3 change, which then failed with

"19:39:39 1) CentralAuthPluginUsingDatabaseTest
19:39:39 exception 'Wikimedia\Rdbms\DBQueryError' with message 'A database query error has occurred. Did you forget to run your application's database schema updater after upgrading?
19:39:39 Query: CREATE INDEX ln_name_wiki ON unittest_localnames (ln_name, ln_wiki)
19:39:39
19:39:39 Function: Wikimedia\Rdbms\Database::sourceFile( /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/CentralAuth/tests/phpunit/../../central-auth.sql )
19:39:39 Error: 1061 Duplicate key name 'ln_name_wiki' (127.0.0.1:3306)
19:39:39 ' in /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/Database.php:1145
19:39:39 Stack trace:"

CentralAuth should switch to using mw functions to make sure that index / table is not created.

This is blocking LoginNotify extension too due to CentralAuth error.

So I tracked it down to broken tableExists() in core, submitted https://gerrit.wikimedia.org/r/#/c/361610/ to fix it then @aaron submitted a better version in https://gerrit.wikimedia.org/r/#/c/361717/ which I merged. Now the tests fail a bit differently:

EchoDiscussionParserTest::testGenerateEventsForRevision with data set #1 (138275105, 138274875, 'Schnark', 'de', array(), 'UTPage', array(array('mention', 'Schnark', 'Echo-Test')))
21:45:27 Wikimedia\Rdbms\DBQueryError: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? 
21:45:27 Query: SELECT  gu_id,gu_name,lu_wiki,gu_salt,gu_password,gu_auth_token,gu_locked,gu_hidden,gu_registration,gu_email,gu_email_authenticated,gu_home_db,gu_cas_token  FROM `unittest_globaluser` LEFT OUTER JOIN `unittest_localuser` ON ((gu_name=lu_name) AND lu_wiki = 'jenkins_u0_mw-unittest_')   WHERE gu_name = 'Werdna'  LIMIT 1  
21:45:27 Function: CentralAuthUser::loadFromDatabase
21:45:27 Error: 1146 Table 'jenkins_u0_mw.unittest_globaluser' doesn't exist (127.0.0.1:3306)
21:45:27 
21:45:27 
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/Database.php:1145
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/Database.php:975
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/Database.php:1339
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/Database.php:1407
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/DBConnRef.php:48
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/libs/rdbms/database/DBConnRef.php:279
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/CentralAuth/includes/CentralAuthUser.php:437
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/CentralAuth/includes/CentralAuthUser.php:369
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/CentralAuth/includes/CentralAuthUser.php:588
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/CentralAuth/includes/CentralAuthHooks.php:781
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/Hooks.php:186
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/includes/user/User.php:4062
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/Echo/tests/phpunit/DiscussionParserTest.php:162
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/Echo/tests/phpunit/DiscussionParserTest.php:144
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/extensions/Echo/tests/phpunit/DiscussionParserTest.php:358
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/tests/phpunit/MediaWikiTestCase.php:402
21:45:27 /home/jenkins/workspace/mwext-testextension-hhvm-jessie/src/maintenance/doMaintenance.php:111

Which probably means that while CA initializes its tables, it does that only before its tests are getting run. And Echo's tests are run before that.

Change 362098 had a related patch set uploaded (by MaxSem; owner: MaxSem):
[mediawiki/extensions/CentralAuth@master] WIP: unbreak tests

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

Change 362111 had a related patch set uploaded (by MaxSem; owner: MaxSem):
[mediawiki/core@master] Add a couple of new hooks

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

Change 362111 merged by jenkins-bot:
[mediawiki/core@master] Add two new hooks to fix broken CentralAuth unit tests

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

Change 362098 merged by jenkins-bot:
[mediawiki/extensions/CentralAuth@master] Unbreak tests

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

MaxSem claimed this task.

Fixed for my repos, please reopen if something else is still broken.

Change 363892 had a related patch set uploaded (by Legoktm; owner: MaxSem):
[mediawiki/core@wmf/1.30.0-wmf.7] Add two new hooks to fix broken CentralAuth unit tests

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

Change 363893 had a related patch set uploaded (by Legoktm; owner: MaxSem):
[mediawiki/extensions/CentralAuth@wmf/1.30.0-wmf.7] Unbreak tests

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

Change 363892 merged by jenkins-bot:
[mediawiki/core@wmf/1.30.0-wmf.7] Add two new hooks to fix broken CentralAuth unit tests

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

Change 363893 merged by jenkins-bot:
[mediawiki/extensions/CentralAuth@wmf/1.30.0-wmf.7] Unbreak tests

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