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
|
from helpers import unlink, err, debug2, debug3, mkdirp, close_on_exec
|
||||||
|
|
||||||
SCHEMA_VER=7
|
SCHEMA_VER=7
|
||||||
|
TIMEOUT=60
|
||||||
|
|
||||||
_db = None
|
_db = None
|
||||||
def db():
|
def db():
|
||||||
|
|
@ -14,7 +15,7 @@ def db():
|
||||||
mkdirp(dbdir)
|
mkdirp(dbdir)
|
||||||
must_create = not os.path.exists(dbfile)
|
must_create = not os.path.exists(dbfile)
|
||||||
if not must_create:
|
if not must_create:
|
||||||
_db = sqlite3.connect(dbfile)
|
_db = sqlite3.connect(dbfile, timeout=TIMEOUT)
|
||||||
try:
|
try:
|
||||||
row = _db.cursor().execute("select version from Schema").fetchone()
|
row = _db.cursor().execute("select version from Schema").fetchone()
|
||||||
except sqlite3.OperationalError:
|
except sqlite3.OperationalError:
|
||||||
|
|
@ -27,7 +28,7 @@ def db():
|
||||||
_db = None
|
_db = None
|
||||||
if must_create:
|
if must_create:
|
||||||
unlink(dbfile)
|
unlink(dbfile)
|
||||||
_db = sqlite3.connect(dbfile)
|
_db = sqlite3.connect(dbfile, timeout=TIMEOUT)
|
||||||
_db.execute("create table Schema (version int)")
|
_db.execute("create table Schema (version int)")
|
||||||
_db.execute("create table Runid "
|
_db.execute("create table Runid "
|
||||||
" (id integer primary key autoincrement)")
|
" (id integer primary key autoincrement)")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#echo "Flushing redo cache..." >&2
|
#echo "Flushing redo cache..." >&2
|
||||||
(
|
(
|
||||||
|
echo ".timeout 5000"
|
||||||
echo "update Files set checked_runid=null;"
|
echo "update Files set checked_runid=null;"
|
||||||
echo "update Files set changed_runid=changed_runid-1;"
|
echo "update Files set changed_runid=changed_runid-1;"
|
||||||
#echo "update Files set stamp='dirty' where id in (select distinct target from Deps);"
|
#echo "update Files set stamp='dirty' where id in (select distinct target from Deps);"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue