sqlite3: configure the timeout explicitly.
In flush-cache.sh, we have to do this, because the sqlite3 command-line tool sets it to zero. Inevitably during parallel testing, it'll end up contending for a lock, and we really want it to wait a bit. In state.py, it's not as important since the default is nonzero. But python-sqlite3's default of 5 seconds makes me a little too nervous; I can imagine a disk write waiting for more than 5 seconds sometime. So let's use 60 instead.
This commit is contained in:
parent
a62bd50d44
commit
9e36106642
2 changed files with 4 additions and 2 deletions
5
state.py
5
state.py
|
|
@ -3,6 +3,7 @@ import vars
|
|||
from helpers import unlink, err, debug2, debug3, mkdirp, close_on_exec
|
||||
|
||||
SCHEMA_VER=7
|
||||
TIMEOUT=60
|
||||
|
||||
_db = None
|
||||
def db():
|
||||
|
|
@ -14,7 +15,7 @@ def db():
|
|||
mkdirp(dbdir)
|
||||
must_create = not os.path.exists(dbfile)
|
||||
if not must_create:
|
||||
_db = sqlite3.connect(dbfile)
|
||||
_db = sqlite3.connect(dbfile, timeout=TIMEOUT)
|
||||
try:
|
||||
row = _db.cursor().execute("select version from Schema").fetchone()
|
||||
except sqlite3.OperationalError:
|
||||
|
|
@ -27,7 +28,7 @@ def db():
|
|||
_db = None
|
||||
if must_create:
|
||||
unlink(dbfile)
|
||||
_db = sqlite3.connect(dbfile)
|
||||
_db = sqlite3.connect(dbfile, timeout=TIMEOUT)
|
||||
_db.execute("create table Schema (version int)")
|
||||
_db.execute("create table Runid "
|
||||
" (id integer primary key autoincrement)")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue