From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timothy Sample Subject: bug#37384: Daemon does not honor =?UTF-8?Q?=E2=80=9CuseSubstitutes=E2=80=9D?= on armhf Date: Wed, 11 Sep 2019 14:51:07 -0400 Message-ID: <87woeevf8k.fsf@ngyro.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:50906) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i87il-0006dl-2Y for bug-guix@gnu.org; Wed, 11 Sep 2019 14:52:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i87ij-0006DJ-Uf for bug-guix@gnu.org; Wed, 11 Sep 2019 14:52:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:33951) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i87ij-0006DD-RV for bug-guix@gnu.org; Wed, 11 Sep 2019 14:52:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i87ij-0007m9-OV for bug-guix@gnu.org; Wed, 11 Sep 2019 14:52:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:50798) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i87hx-0006Z1-CD for bug-guix@gnu.org; Wed, 11 Sep 2019 14:51:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i87hw-0005lh-8r for bug-guix@gnu.org; Wed, 11 Sep 2019 14:51:13 -0400 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:48991) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i87hv-0005kk-VZ for bug-guix@gnu.org; Wed, 11 Sep 2019 14:51:12 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 2C5E1557 for ; Wed, 11 Sep 2019 14:51:09 -0400 (EDT) Received: from mrblack (74-116-186-44.qc.dsl.ebox.net [74.116.186.44]) by mail.messagingengine.com (Postfix) with ESMTPA id 61EF7D60067 for ; Wed, 11 Sep 2019 14:51:08 -0400 (EDT) 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: 37384@debbugs.gnu.org Currently, the =E2=80=9Cguix=E2=80=9D package cannot build on armhf due to = test failures: . (I can confirm this on my local machine, too.) It looks like there is some confusion about the layout of the =E2=80=9CSett= ings=E2=80=9D struct. At least, if I add some print statements in the code to print the address of the =E2=80=9CuseSubstitutes=E2=80=9D flag: printMsg(lvlError, format("XXX: %1%") % &settings.useSubstitutes); it gives me different addresses depending on whether I=E2=80=99m printing f= rom the main daemon loop or from the =E2=80=9CquerySubstitutablePathInfos=E2=80= =9D method. The addresses suspiciously differ by eight. I can confirm that the addresses are the same on x86_64. My guess is that this bug was revealed by the changes made in commit f6919ebdc6b0ce0286814cc6ab0564b1a4c67f5f (making the daemon assume a single substituter). Before this commit, it looks like the daemon would give up because there were no substituters. Now it relies on checking =E2=80=9CuseSubstitutes=E2=80=9D, which is not in fact reliable. I=E2=80= =99ve tested everything from before this commit, and the addresses are still different. Weirdly, in GDB, I can be right before the following line: if (!settings.useSubstitutes) return; run =E2=80=9Cp settings.useSubstitutes=E2=80=9D and see =E2=80=9Cfalse=E2= =80=9D, and then continue running through the method without hitting that =E2=80=9Creturn=E2=80=9D. = It seems GDB is not confused about the flag, just the actual code. Looking at the disassembly was no use to me, since I don=E2=80=99t know much about ARM, and it was not simple enough for me to guess what it was doing. -- Tim