From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 15 06:59:10 2017 Received: (at submit) by debbugs.gnu.org; 15 Jul 2017 10:59:10 +0000 Received: from localhost ([127.0.0.1]:39565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWKmw-0003fS-62 for submit@debbugs.gnu.org; Sat, 15 Jul 2017 06:59:10 -0400 Received: from eggs.gnu.org ([208.118.235.92]:59881) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWKmu-0003ew-Nd for submit@debbugs.gnu.org; Sat, 15 Jul 2017 06:59:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dWKmo-0001Nr-QH for submit@debbugs.gnu.org; Sat, 15 Jul 2017 06:58:59 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:34511) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dWKmo-0001Ni-N1 for submit@debbugs.gnu.org; Sat, 15 Jul 2017 06:58:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50846) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dWKmn-0005RM-E4 for guix-patches@gnu.org; Sat, 15 Jul 2017 06:58:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dWKmk-0001Mp-Bv for guix-patches@gnu.org; Sat, 15 Jul 2017 06:58:57 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57630) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dWKmk-0001Mj-8K; Sat, 15 Jul 2017 06:58:54 -0400 Received: from peder.onsbrabantnet.nl ([88.159.206.46]:51428 helo=localhost.localdomain) by fencepost.gnu.org with esmtpa (Exim 4.82) (envelope-from ) id 1dWKmj-0005gL-On; Sat, 15 Jul 2017 06:58:54 -0400 From: Jan Nieuwenhuizen To: guix-patches@gnu.org Subject: [PATCH] daemon: Show actual rather than collateral error when export fails. Date: Sat, 15 Jul 2017 12:58:51 +0200 Message-Id: <20170715105851.24979-1-janneke@gnu.org> X-Mailer: git-send-email 2.13.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Having the wrong permissions on /etc/guix/signing-key.sec gives guix-daemon: nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed. this patch changes that to guix-daemon: error: file `/etc/guix/signing-key.sec' should be secret (inaccessible to everybody else)! * nix/nix-daemon/nix-daemon.cc (performOp): Catch any exportPath exception, report and exit on that. Fixes failing later with uninformative collateral error. --- nix/nix-daemon/nix-daemon.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc index 7d26b6135..aeeadf144 100644 --- a/nix/nix-daemon/nix-daemon.cc +++ b/nix/nix-daemon/nix-daemon.cc @@ -436,7 +436,13 @@ static void performOp(bool trusted, unsigned int clientVersion, bool sign = readInt(from) == 1; startWork(); TunnelSink sink(to); - store->exportPath(path, sign, sink); + try { + store->exportPath(path, sign, sink); + } + catch (std::exception &e) { + fprintf (stderr, "guix-daemon: error: %s\n", e.what ()); + exit (EXIT_FAILURE); + } sink.flush(); stopWork(); writeInt(1, to); -- Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 17 05:47:22 2017 Received: (at 27704) by debbugs.gnu.org; 17 Jul 2017 09:47:22 +0000 Received: from localhost ([127.0.0.1]:43247 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dX2cc-0005f9-0Z for submit@debbugs.gnu.org; Mon, 17 Jul 2017 05:47:22 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33654) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dX2ca-0005ew-NF for 27704@debbugs.gnu.org; Mon, 17 Jul 2017 05:47:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX2cU-0006da-OK for 27704@debbugs.gnu.org; Mon, 17 Jul 2017 05:47:15 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59292) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX2cN-0006WU-7a; Mon, 17 Jul 2017 05:47:07 -0400 Received: from [193.50.110.212] (port=51360 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dX2cM-0001zj-OF; Mon, 17 Jul 2017 05:47:07 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: Jan Nieuwenhuizen Subject: Re: [bug#27704] [PATCH] daemon: Show actual rather than collateral error when export fails. References: <20170715105851.24979-1-janneke@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 29 Messidor an 225 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Mon, 17 Jul 2017 11:47:04 +0200 In-Reply-To: <20170715105851.24979-1-janneke@gnu.org> (Jan Nieuwenhuizen's message of "Sat, 15 Jul 2017 12:58:51 +0200") Message-ID: <87vamrbdk7.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 27704 Cc: 27704@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Hello, Jan Nieuwenhuizen skribis: > Having the wrong permissions on /etc/guix/signing-key.sec gives > > guix-daemon: nix/libutil/serialise.cc:15: virtual nix::BufferedSink::= ~BufferedSink(): Assertion `!bufPos' failed. > > this patch changes that to > > guix-daemon: error: file `/etc/guix/signing-key.sec' should be secret= (inaccessible to everybody else)! > > * nix/nix-daemon/nix-daemon.cc (performOp): Catch any exportPath exceptio= n, > report and exit on that. Fixes failing later with uninformative collater= al error. Good catch! > --- a/nix/nix-daemon/nix-daemon.cc > +++ b/nix/nix-daemon/nix-daemon.cc > @@ -436,7 +436,13 @@ static void performOp(bool trusted, unsigned int cli= entVersion, > bool sign =3D readInt(from) =3D=3D 1; > startWork(); > TunnelSink sink(to); > - store->exportPath(path, sign, sink); > + try { > + store->exportPath(path, sign, sink); > + } > + catch (std::exception &e) { > + fprintf (stderr, "guix-daemon: error: %s\n", e.what ()); > + exit (EXIT_FAILURE); I think we should simply do: sink.flush(); throw e; in the =E2=80=98catch=E2=80=99 handler. That way, we won=E2=80=99t have the assertion failure, and yet the error wi= ll correctly propagate to the client without forcing a disconnect. Could you check if that works as expected? Thank you! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 17 09:15:26 2017 Received: (at 27704-done) by debbugs.gnu.org; 17 Jul 2017 13:15:26 +0000 Received: from localhost ([127.0.0.1]:43395 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dX5ry-0003qt-3u for submit@debbugs.gnu.org; Mon, 17 Jul 2017 09:15:26 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47243) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dX5rw-0003qg-D2 for 27704-done@debbugs.gnu.org; Mon, 17 Jul 2017 09:15:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dX5ro-0006Bu-3H for 27704-done@debbugs.gnu.org; Mon, 17 Jul 2017 09:15:19 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33742) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dX5rb-000642-8V; Mon, 17 Jul 2017 09:15:03 -0400 Received: from [193.50.110.212] (port=51530 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1dX5ra-0000gH-Pc; Mon, 17 Jul 2017 09:15:03 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: Jan Nieuwenhuizen Subject: Re: [bug#27704] [PATCH] daemon: Show actual rather than collateral error when export fails. References: <20170715105851.24979-1-janneke@gnu.org> <87vamrbdk7.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 29 Messidor an 225 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Mon, 17 Jul 2017 15:15:01 +0200 In-Reply-To: <87vamrbdk7.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 17 Jul 2017 11:47:04 +0200") Message-ID: <87r2xf8asq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 27704-done Cc: 27704-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > Hello, > > Jan Nieuwenhuizen skribis: > >> Having the wrong permissions on /etc/guix/signing-key.sec gives >> >> guix-daemon: nix/libutil/serialise.cc:15: virtual nix::BufferedSink:= :~BufferedSink(): Assertion `!bufPos' failed. >> >> this patch changes that to >> >> guix-daemon: error: file `/etc/guix/signing-key.sec' should be secre= t (inaccessible to everybody else)! >> >> * nix/nix-daemon/nix-daemon.cc (performOp): Catch any exportPath excepti= on, >> report and exit on that. Fixes failing later with uninformative collate= ral error. > > Good catch! > >> --- a/nix/nix-daemon/nix-daemon.cc >> +++ b/nix/nix-daemon/nix-daemon.cc >> @@ -436,7 +436,13 @@ static void performOp(bool trusted, unsigned int cl= ientVersion, >> bool sign =3D readInt(from) =3D=3D 1; >> startWork(); >> TunnelSink sink(to); >> - store->exportPath(path, sign, sink); >> + try { >> + store->exportPath(path, sign, sink); >> + } >> + catch (std::exception &e) { >> + fprintf (stderr, "guix-daemon: error: %s\n", e.what ()); >> + exit (EXIT_FAILURE); > > I think we should simply do: > > sink.flush(); > throw e; > > in the =E2=80=98catch=E2=80=99 handler. I=E2=80=99ve confirmed that it works as expected. Pushed as 2e009ae7cdaee4ce871b3a79d50118762ee29fb6, thanks again! Ludo=E2=80=99. From unknown Fri Aug 15 16:21:14 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 15 Aug 2017 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator