Page MenuHomePhabricator

Jenkins parser test runs broken
Closed, ResolvedPublic

Description

From https://integration.wikimedia.org/ci/job/parsoidsvc-hhvm-parsertests-jessie/4997/console

01:38:13 Running parser tests from "/home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/parsoidsvc/tests/parserTests.txt"...
01:38:13 A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? 
01:38:13 Query: SELECT  model_id AS "id",model_name AS "name"  FROM parsertest_content_models     ORDER BY id 
01:38:13 Function: MediaWiki\Storage\NameTableStore::loadTable
01:38:13 Error: 1 no such table: parsertest_content_models
01:38:13 
01:38:13 [Fri Jul 20 01:38:13 2018] [hphp] [2388:7fecd97a8200:0:000001] [] 
01:38:13 Warning: Destructor threw an object exception: 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? 
01:38:13 Query: SELECT  model_id AS "id",model_name AS "name"  FROM parsertest_content_models     ORDER BY id 
01:38:13 Function: MediaWiki\Storage\NameTableStore::loadTable
01:38:13 Error: 1 no such table: parsertest_content_models
01:38:13 ' in /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/database/Database.php:1443
01:38:13 Stack trace:
01:38:13 #0 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/database/Database.php(1180): Wikimedia\Rdbms\Database->makeQueryException()

01:38:13 
01:38:13 Next exception 'Wikimedia\Rdbms\DBTransactionStateError' with message 'Cannot execute query from Wikimedia\Rdbms\Database::query while transaction status is ERROR.' in /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/database/Database.php:1303
01:38:13 Stack trace:
01:38:13 #0 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/database/Database.php(1087): Wikimedia\Rdbms\Database->assertTransactionStatus()
01:38:13 #1 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/ParserTestRunner.php(1462): Wikimedia\Rdbms\Database->query()
01:38:13 #2 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/ParserTestRunner.php(1280): ParserTestRunner->teardownDatabase()
01:38:13 #3 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/ParserTestRunner.php(465): Closure$ParserTestRunner::setupDatabase()
01:38:13 #4 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/ParserTestRunner.php(493): ParserTestRunner->executeSetupSnippets()
01:38:13 #5 (): Closure$ParserTestRunner::createTeardownObject()
01:38:13 #6 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/vendor/wikimedia/scoped-callback/src/ScopedCallback.php(76): call_user_func_array()
01:38:13 #7 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/vendor/wikimedia/scoped-callback/src/ScopedCallback.php(56): Wikimedia\ScopedCallback->__destruct()
01:38:13 #8 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/ParserTestRunner.php(699): Wikimedia\ScopedCallback::consume()
01:38:13 #9 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/parserTests.php(188): ParserTestRunner->runTestsFromFiles()
01:38:13 #10 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/maintenance/doMaintenance.php(94): ParserTestsMaintenance->execute()
01:38:13 #11 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/parserTests.php(199): include()
01:38:13 #12 {main} in /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/vendor/wikimedia/scoped-callback/src/ScopedCallback.php on line 56
01:38:13 [b6bd321659a42c8d8ade1927] [no req]   Wikimedia\Rdbms\DBTransactionError from line 1315 of /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/loadbalancer/LoadBalancer.php: Explicit transaction still active. A caller may have caught an error.
01:38:13 Backtrace:
01:38:13 #0 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1746): Closure$Wikimedia\Rdbms\LoadBalancer::approveMasterChanges(Wikimedia\Rdbms\DatabaseSqlite)
01:38:13 #1 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1335): Wikimedia\Rdbms\LoadBalancer->forEachOpenMasterConnection(Closure$Wikimedia\Rdbms\LoadBalancer::approveMasterChanges;143)
01:38:13 #2 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/lbfactory/LBFactory.php(218): Wikimedia\Rdbms\LoadBalancer->approveMasterChanges(array)
01:38:13 #3 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/lbfactory/LBFactorySimple.php(152): Closure$Wikimedia\Rdbms\LBFactory::forEachLBCallMethod(Wikimedia\Rdbms\LoadBalancer, string, array)
01:38:13 #4 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/lbfactory/LBFactory.php(221): Wikimedia\Rdbms\LBFactorySimple->forEachLB(Closure$Wikimedia\Rdbms\LBFactory::forEachLBCallMethod;28, array)
01:38:13 #5 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/includes/libs/rdbms/lbfactory/LBFactory.php(269): Wikimedia\Rdbms\LBFactory->forEachLBCallMethod(string, array)
01:38:13 #6 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/maintenance/doMaintenance.php(102): Wikimedia\Rdbms\LBFactory->commitMasterChanges(string)
01:38:13 #7 /home/jenkins/workspace/parsoidsvc-hhvm-parsertests-jessie/src/mediawiki/core/tests/parser/parserTests.php(199): include(string)
01:38:13 #8 {main}

Holding up parsoid patch verification and merge

Event Timeline

Based on the job history:

SUCCESSJul 19, 2018 11:19 UTC
FAILUREJul 19, 2018 22:15 UTC

At least the installer did create the table since update.php reports:

...content_models table already exists.

The testsuite supposedly clones the tables with a table prefix of parsertest_:

Start command line script tests/parser/parserTests.php
[DBConnection] Wikimedia\Rdbms\LoadBalancer::openConnection: connected to database 0 at 'localhost'.
CloneDatabase::cloneTableStructure dropping parsertest_user
CloneDatabase::cloneTableStructure duplicating user to parsertest_user
...
CloneDatabase::cloneTableStructure dropping parsertest_transcode
CloneDatabase::cloneTableStructure duplicating transcode to parsertest_transcode
..
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[DBQuery] SQL ERROR: no such table: parsertest_content_models

There is no call to CloneDatabase::cloneTableStructure for the content_models table. On my local wiki with SQLite it works fine at least.

In mediawiki/core that is:

$ git log --oneline --graph --since="Jul 19, 2018 11:19 UTC" --until="Jul 19, 2018 22:15 UTC"
x 09b4f0db06 Localisation updates from https://translatewiki.net.
x 888c151dc0 Merge "Convert Title::getTitleCache() to using MapCacheLRU (again)"
I\
I x f29b5e3ae4 Convert Title::getTitleCache() to using MapCacheLRU (again)
x 9f7bda0b4f Merge "In mysql.php ignore SIGINT"
I x 2fb1ec2a75 Language::listToText: Avoid PHP warnings from E_STRICT
I/
x 2b9391c966 Merge "RCFilters: Work around Chrome browser bug in filter menu"
x 05a4432e2a Merge "Set default wgMultiContentRevisionSchemaMigrationStage to write-both"
x 0df3355fba Merge "docs: Remove table-layout documentation from core"
I\
I x 00096d8f4a docs: Remove table-layout documentation from core
x 7ca601fd08 Merge "config: Add new ConfigRepository"
I\
I x 418cb8d9b3 config: Add new ConfigRepository
x I 32fd2342e5 Merge "registration: Expose config array to ExtensionRegistry"
I/
x 488796a9c4 registration: Expose config array to ExtensionRegistry
x 78955203c3 ApiMain: Always create a new printer in getPrinterByName()

hashar assigned this task to tstarling.
hashar added a subscriber: tstarling.

Fixed in 9742d569b08e579e77476a9dbcd5b01dfbeab2ee by @tstarling

The patch adds multiple content revision tables to the list of tables that have to be cloned:

'slots', 'content', 'slot_roles', 'content_models'

From the commit message:

  • Add the MCR tables to the list of tables that need to be cloned. Fixes unconditional exception.

I did a recheck on https://gerrit.wikimedia.org/r/#/c/446633/ and it passed :]