GNU bug report logs - #30618
Cuirass dies with locked database

Previous Next

Package: guix;

Reported by: Andreas Enge <andreas <at> enge.fr>

Date: Mon, 26 Feb 2018 20:50:02 UTC

Severity: important

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 30618 in the body.
You can then email your comments to 30618 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#30618; Package guix. (Mon, 26 Feb 2018 20:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andreas Enge <andreas <at> enge.fr>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 26 Feb 2018 20:50:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: bug-guix <at> gnu.org
Subject: Cuirass dies with locked database
Date: Mon, 26 Feb 2018 21:49:00 +0100
Hello,

one of my latest cuirass runs ended in this:

...
In ice-9/boot-9.scm:
    705:2 12 (call-with-prompt _ _ #<procedure 191f060 at ice-9/eval…>)
    705:2 11 (call-with-prompt _ _ #<procedure 19233e0 at ice-9/eval…>)
In ice-9/eval.scm:
    619:8 10 (_ #(#(#<directory (guile-user) 131d140> #<variable…> …)))
In srfi/srfi-1.scm:
    640:9  9 (for-each #<procedure process (spec)> (((#:name . #) …)))
In cuirass/base.scm:
   576:15  8 (process ((#:name . "guix") (#:url . "https://git.s…") …))
In cuirass/database.scm:
    68:18  7 (%sqlite-exec _ _ . _)
In ice-9/eval.scm:
   293:34  6 (_ #(#(#<directory (sqlite3) 1358820> #<<sqlite-stm…> …)))
    619:8  5 (_ #(#(#(#(#<directory (sqlite3) 1358820> #<…>) #) 5) 5))
In ice-9/boot-9.scm:
   751:25  4 (dispatch-exception 0 sqlite-error (#f 5 "database is…"))
In cuirass/utils.scm:
    115:8  3 (_ _ #f 5 "database is locked")
In ice-9/boot-9.scm:
    829:9  2 (catch #t #<procedure 91c0f00 at cuirass/utils.scm:115…> …)
In cuirass/utils.scm:
   116:22  1 (_)
In unknown file:
           0 (make-stack #t)
ERROR: In procedure make-stack:
Throw to key `sqlite-error' with args `(#f 5 "database is locked")'.

This is probably not dramatic when running it as a service, since then
it will be respawned some time later, but it should be caught in the code.

Andreas





Information forwarded to bug-guix <at> gnu.org:
bug#30618; Package guix. (Tue, 27 Feb 2018 15:59:01 GMT) Full text and rfc822 format available.

Message #8 received at 30618 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andreas Enge <andreas <at> enge.fr>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, 30618 <at> debbugs.gnu.org
Subject: Re: bug#30618: Cuirass dies with locked database
Date: Tue, 27 Feb 2018 16:58:19 +0100
Hello,

Andreas Enge <andreas <at> enge.fr> skribis:

> one of my latest cuirass runs ended in this:
>
> ...
> In ice-9/boot-9.scm:
>     705:2 12 (call-with-prompt _ _ #<procedure 191f060 at ice-9/eval…>)
>     705:2 11 (call-with-prompt _ _ #<procedure 19233e0 at ice-9/eval…>)
> In ice-9/eval.scm:
>     619:8 10 (_ #(#(#<directory (guile-user) 131d140> #<variable…> …)))
> In srfi/srfi-1.scm:
>     640:9  9 (for-each #<procedure process (spec)> (((#:name . #) …)))
> In cuirass/base.scm:
>    576:15  8 (process ((#:name . "guix") (#:url . "https://git.s…") …))
> In cuirass/database.scm:
>     68:18  7 (%sqlite-exec _ _ . _)
> In ice-9/eval.scm:
>    293:34  6 (_ #(#(#<directory (sqlite3) 1358820> #<<sqlite-stm…> …)))
>     619:8  5 (_ #(#(#(#(#<directory (sqlite3) 1358820> #<…>) #) 5) 5))
> In ice-9/boot-9.scm:
>    751:25  4 (dispatch-exception 0 sqlite-error (#f 5 "database is…"))
> In cuirass/utils.scm:
>     115:8  3 (_ _ #f 5 "database is locked")
> In ice-9/boot-9.scm:
>     829:9  2 (catch #t #<procedure 91c0f00 at cuirass/utils.scm:115…> …)
> In cuirass/utils.scm:
>    116:22  1 (_)
> In unknown file:
>            0 (make-stack #t)
> ERROR: In procedure make-stack:
> Throw to key `sqlite-error' with args `(#f 5 "database is locked")'.

I’ve noticed this occasionally on berlin.  I believe this has to do with
concurrent accesses to the database, which can happen if, for instance,
the evaluation fiber adds lots of builds to the database while at the
same time there are lots of builds completed, and thus
‘db-update-build-status!’ calls.

I’m not sure what’s the right way to handle this.  Should we just catch
the exception and retry?  Is there something smarter to do?  WDYT Danny?

Thanks,
Ludo’.




Severity set to 'important' from 'normal' Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Thu, 01 Mar 2018 12:35:01 GMT) Full text and rfc822 format available.

Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Thu, 01 Mar 2018 21:58:01 GMT) Full text and rfc822 format available.

Notification sent to Andreas Enge <andreas <at> enge.fr>:
bug acknowledged by developer. (Thu, 01 Mar 2018 21:58:01 GMT) Full text and rfc822 format available.

Message #15 received at 30618-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andreas Enge <andreas <at> enge.fr>
Cc: 30618-done <at> debbugs.gnu.org
Subject: Re: bug#30618: Cuirass dies with locked database
Date: Thu, 01 Mar 2018 22:57:19 +0100
Andreas Enge <andreas <at> enge.fr> skribis:

> one of my latest cuirass runs ended in this:
>
> ...
> In ice-9/boot-9.scm:
>     705:2 12 (call-with-prompt _ _ #<procedure 191f060 at ice-9/eval…>)
>     705:2 11 (call-with-prompt _ _ #<procedure 19233e0 at ice-9/eval…>)
> In ice-9/eval.scm:
>     619:8 10 (_ #(#(#<directory (guile-user) 131d140> #<variable…> …)))
> In srfi/srfi-1.scm:
>     640:9  9 (for-each #<procedure process (spec)> (((#:name . #) …)))
> In cuirass/base.scm:
>    576:15  8 (process ((#:name . "guix") (#:url . "https://git.s…") …))
> In cuirass/database.scm:
>     68:18  7 (%sqlite-exec _ _ . _)
> In ice-9/eval.scm:
>    293:34  6 (_ #(#(#<directory (sqlite3) 1358820> #<<sqlite-stm…> …)))
>     619:8  5 (_ #(#(#(#(#<directory (sqlite3) 1358820> #<…>) #) 5) 5))
> In ice-9/boot-9.scm:
>    751:25  4 (dispatch-exception 0 sqlite-error (#f 5 "database is…"))
> In cuirass/utils.scm:
>     115:8  3 (_ _ #f 5 "database is locked")
> In ice-9/boot-9.scm:
>     829:9  2 (catch #t #<procedure 91c0f00 at cuirass/utils.scm:115…> …)
> In cuirass/utils.scm:
>    116:22  1 (_)
> In unknown file:
>            0 (make-stack #t)
> ERROR: In procedure make-stack:
> Throw to key `sqlite-error' with args `(#f 5 "database is locked")'.

I believe this is fixed by Cuirass commit
aa4c7784940581b5e271b9c7c4ac80b6ee1ee309, available in
cuirass <at> 0.0.1-13.aa4c778 in Guix.

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 30 Mar 2018 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 29 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.