GNU bug report logs -
#30644
Cuirass runs out of build users
Previous Next
Reported by: Andreas Enge <andreas <at> enge.fr>
Date: Wed, 28 Feb 2018 09:08:01 UTC
Severity: normal
Done: Mathieu Othacehe <othacehe <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #50 received at 30644 <at> debbugs.gnu.org (full text, mbox):
Hi Danny,
Danny Milosavljevic <dannym <at> scratchpost.org> skribis:
> I've checked it some more. The shared cache uses unlock_notify, and the actual
> database uses sqlite3_busy_handler (sqlite3_busy_timeout) when BUSY is returned.
>
> The 5 in
>
> ice-9/eval.scm:619:8: Throw to key `sqlite-error' with args `(#f 5 "database is locked")'.
> ^^
>
> means SQLITE_BUSY, so that's the actual database.
>
> So the easiest way to work around it would be to call
>
> sqlite3_busy_timeout(db, 10); // ms
>
> which would automatically repeatedly retry on busy until 10 ms have accumulated,
> and only then give up.
Indeed, that’s actually what nix/libstore does.
> There's also sqlite3_busy_handler which can be used to install a busy handler,
> and of course in the future we could also handle SQLITE_BUSY ourselves and yield.
>
> See also https://notabug.org/civodul/guile-sqlite3/pulls/4 for the former.
Awesome.
I’ve merged these guile-sqlite3 bits and added a “PRAGMA busy_timeout”
in Cuirass (the pragma allows us to set the timeout even when using an
older guile-sqlite3.) I’ve updated the ‘cuirass’ package and will test
soonish on berlin.
Thank you!
Ludo’.
This bug report was last modified 4 years and 57 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.