From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#30618: Cuirass dies with locked database Date: Tue, 27 Feb 2018 16:58:19 +0100 Message-ID: <87po4q1l2c.fsf@gnu.org> References: <20180226204900.GA2427@jurong> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50181) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eqhem-0005N4-3x for bug-guix@gnu.org; Tue, 27 Feb 2018 10:59:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eqheg-0007eJ-FM for bug-guix@gnu.org; Tue, 27 Feb 2018 10:59:08 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:56138) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eqheg-0007e3-Ag for bug-guix@gnu.org; Tue, 27 Feb 2018 10:59:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eqhef-0006B4-Ta for bug-guix@gnu.org; Tue, 27 Feb 2018 10:59:01 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <20180226204900.GA2427@jurong> (Andreas Enge's message of "Mon, 26 Feb 2018 21:49:00 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Andreas Enge Cc: 30618@debbugs.gnu.org Hello, Andreas Enge skribis: > one of my latest cuirass runs ended in this: > > ... > In ice-9/boot-9.scm: > 705:2 12 (call-with-prompt _ _ #) > 705:2 11 (call-with-prompt _ _ #) > In ice-9/eval.scm: > 619:8 10 (_ #(#(# # =E2=80=A6))) > In srfi/srfi-1.scm: > 640:9 9 (for-each # (((#:name . #) =E2=80= =A6))) > In cuirass/base.scm: > 576:15 8 (process ((#:name . "guix") (#:url . "https://git.s=E2=80=A6= ") =E2=80=A6)) > In cuirass/database.scm: > 68:18 7 (%sqlite-exec _ _ . _) > In ice-9/eval.scm: > 293:34 6 (_ #(#(# #< =E2=80=A6))) > 619:8 5 (_ #(#(#(#(# #<=E2=80=A6>) #) 5= ) 5)) > In ice-9/boot-9.scm: > 751:25 4 (dispatch-exception 0 sqlite-error (#f 5 "database is=E2=80= =A6")) > In cuirass/utils.scm: > 115:8 3 (_ _ #f 5 "database is locked") > In ice-9/boot-9.scm: > 829:9 2 (catch #t # =E2=80=A6) > 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=E2=80=99ve 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 =E2=80=98db-update-build-status!=E2=80=99 calls. I=E2=80=99m not sure what=E2=80=99s the right way to handle this. Should w= e just catch the exception and retry? Is there something smarter to do? WDYT Danny? Thanks, Ludo=E2=80=99.