all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#30618: Cuirass dies with locked database
@ 2018-02-26 20:49 Andreas Enge
  2018-02-27 15:58 ` Ludovic Courtès
  2018-03-01 21:57 ` Ludovic Courtès
  0 siblings, 2 replies; 3+ messages in thread
From: Andreas Enge @ 2018-02-26 20:49 UTC (permalink / raw)
  To: 30618

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#30618: Cuirass dies with locked database
  2018-02-26 20:49 bug#30618: Cuirass dies with locked database Andreas Enge
@ 2018-02-27 15:58 ` Ludovic Courtès
  2018-03-01 21:57 ` Ludovic Courtès
  1 sibling, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2018-02-27 15:58 UTC (permalink / raw)
  To: Andreas Enge; +Cc: 30618

Hello,

Andreas Enge <andreas@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’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#30618: Cuirass dies with locked database
  2018-02-26 20:49 bug#30618: Cuirass dies with locked database Andreas Enge
  2018-02-27 15:58 ` Ludovic Courtès
@ 2018-03-01 21:57 ` Ludovic Courtès
  1 sibling, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2018-03-01 21:57 UTC (permalink / raw)
  To: Andreas Enge; +Cc: 30618-done

Andreas Enge <andreas@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@0.0.1-13.aa4c778 in Guix.

Ludo’.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-03-01 21:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-26 20:49 bug#30618: Cuirass dies with locked database Andreas Enge
2018-02-27 15:58 ` Ludovic Courtès
2018-03-01 21:57 ` Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.