GNU bug report logs - #37384
Daemon does not honor “useSubstitutes” on armhf

Previous Next

Package: guix;

Reported by: Timothy Sample <samplet <at> ngyro.com>

Date: Wed, 11 Sep 2019 18:52:01 UTC

Severity: normal

Done: Timothy Sample <samplet <at> ngyro.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Timothy Sample <samplet <at> ngyro.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#37384: closed (Daemon does not honor “useSubstitutes”
 on armhf)
Date: Tue, 17 Sep 2019 04:15:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 17 Sep 2019 00:14:42 -0400
with message-id <877e675zkd.fsf <at> ngyro.com>
and subject line Re: bug#37384: Daemon does not honor “useSubstitutes” on armhf
has caused the debbugs.gnu.org bug report #37384,
regarding Daemon does not honor “useSubstitutes” on armhf
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
37384: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=37384
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Timothy Sample <samplet <at> ngyro.com>
To: bug-guix <at> gnu.org
Subject: Daemon does not honor “useSubstitutes”
 on armhf
Date: Wed, 11 Sep 2019 14:51:07 -0400
Currently, the “guix” package cannot build on armhf due to test
failures: <https://ci.guix.gnu.org/build/1705321/details>.  (I can
confirm this on my local machine, too.)

It looks like there is some confusion about the layout of the “Settings”
struct.  At least, if I add some print statements in the code to print
the address of the “useSubstitutes” flag:

    printMsg(lvlError, format("XXX: %1%") % &settings.useSubstitutes);

it gives me different addresses depending on whether I’m printing from
the main daemon loop or from the “querySubstitutablePathInfos” 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
“useSubstitutes”, which is not in fact reliable.  I’ve 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 “p settings.useSubstitutes” and see “false”, and then continue
running through the method without hitting that “return”.  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’t know much
about ARM, and it was not simple enough for me to guess what it was
doing.


-- Tim


[Message part 3 (message/rfc822, inline)]
From: Timothy Sample <samplet <at> ngyro.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 37384-done <at> debbugs.gnu.org
Subject: Re: bug#37384: Daemon does not honor “useSubstitutes” on armhf
Date: Tue, 17 Sep 2019 00:14:42 -0400
Hi,

Ludovic Courtès <ludo <at> gnu.org> writes:

> LGTM.

Great!  I just pushed it.  Thanks for the review.


-- Tim


This bug report was last modified 5 years and 244 days ago.

Previous Next


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