Page MenuHomePhabricator

FlaggablePageTest::testPageDataFromTitle: SqlBagOStuff::set: Flushing an explicit transaction, getting out of sync! [Called from DatabaseBase::commit in ...
Closed, ResolvedPublic

Description

I have added Jenkins job for the FlaggedRevs extension (bug 59918) and created a dummy change https://gerrit.wikimedia.org/r/#/c/115143/

The test suite does not pass because FlaggablePageTest::testPageDataFromTitle triggers an uncommitted transaction.

See attached build log coming from https://integration.wikimedia.org/ci/job/mwext-FlaggedRevs-testextensions-master/1/console


Version: unspecified
Severity: normal
See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=67905

Details

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 2:50 AM
bzimport set Reference to bz61848.
bzimport added a subscriber: Unknown Object (MLST).

Change 115147 had a related patch set uploaded by Hashar:
mwext-FlaggedRevs-testextensions-master is not passing

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

Change 115147 merged by jenkins-bot:
mwext-FlaggedRevs-testextensions-master is not passing

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

The job is being run by Gerrit/Zuul but is not blocking changes pending the test suite to be fixed.

Glancing through the code, it appears that when sqlite is being used for both the main database and SqlBagOStuff, it will use the same database connection for both. So when SqlBagOStuff as $wgMemc flushes the database transaction, it is interfering with the transactions on the main database as well, giving this error.

MySQL has a different code path in SqlBagOStuff::getDB that appears to create an entirely new loadbalancer object which will return a separate database connection, causing no interference in production.

Change 221333 had a related patch set uploaded (by Legoktm):
Make FlaggedRevs tests voting

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

Change 221333 merged by jenkins-bot:
Make FlaggedRevs tests voting

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