Page MenuHomePhabricator

[Regression] Jenkins: SQLite database is often locked causing queries to fail
Closed, DuplicatePublic

Description

https://integration.wikimedia.org/ci/job/mwext-VisualEditor-qunit/11566/

Artifact: mw-debug-www.log

DatabaseBase::query: Writes done: REPLACE INTO objectcache (keyname,value,exptime) VALUES ('X')
SQL ERROR (ignored): database is locked
..

DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR: database is locked
..

MessageBlobStore::insertMessageBlob failed to update DB: exception 'DBQueryError' with message 'A database error has occurred. Did you forget to run maintenance/update.php after upgrading? See: https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script
Query: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('en','jquery.ui.button','{}','20140919182152')
Function: MessageBlobStore::insertMessageBlob/single-row
Error: 5 database is locked

DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: REPLACE INTO objectcache (keyname,value,exptime) VALUES ('X')
SQL ERROR (ignored): database is locked
..

SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
SQL ERROR (ignored): database is locked
DatabaseBase::query: Writes done: INSERT OR IGNORE INTO msg_resource (mr_lang,mr_resource,mr_blob,mr_timestamp) VALUES ('X')
...


Version: wmf-deployment
Severity: major

Details

Reference
bz71058

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 3:57 AM
bzimport set Reference to bz71058.
bzimport added a subscriber: Unknown Object (MLST).

I don't think MediaWiki manages SQLite lock and concurrency at all.

In this case, it seems two different Apache PHP threads are attempting to update the message cache. For CI purposes, maybe we want to repopulate the message cache in the DB or skip it entirely to use the good old messages PHP files.