GNU bug report logs -
#32952
"make check-system" fails to report record-abi-mismatch-error
Previous Next
Reported by: Chris Marusich <cmmarusich <at> gmail.com>
Date: Sat, 6 Oct 2018 07:31:02 UTC
Severity: normal
Tags: notabug
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Full log
Message #8 received at 32952 <at> debbugs.gnu.org (full text, mbox):
Hi Chris,
Chris Marusich <cmmarusich <at> gmail.com> skribis:
> The procedure warn-about-load-error is defined in guix/ui.scm. It calls
> display-error. That seems to be where the problem occurs. Based on the
> debug output I added, we can see that in warn-about-load-error, the args
> variable refers to the following list:
>
> (record-abi-mismatch-error #<record-type <openssh-configuration>>)
>
> This is strange, since the only place that throws
> record-abi-mismatch-error is in guix/records.scm...
>
> (define (abi-check type cookie)
> "Return syntax that checks that the current \"application binary
> interface\" (ABI) for TYPE is equal to COOKIE."
> (with-syntax ((current-abi (current-abi-identifier type)))
> #`(unless (eq? current-abi #,cookie)
> ;; The source file where this exception is thrown must be
> ;; recompiled.
> (throw 'record-abi-mismatch-error 'abi-check
> "~a: record ABI mismatch; recompilation needed"
> (list #,type) '()))))
>
>
> ...and based on that code, I expected the args variable to contain many
> more elements. I expected it to look more like this:
>
> scheme@(guile-user)> (throw 'record-abi-mismatch-error 'abi-check
> "~a: record ABI mismatch; recompilation needed"
> (list 'some-type) '())
> Throw to key `record-abi-mismatch-error' with args `(abi-check "~a: record ABI mismatch; recompilation needed" (some-type) ())'.
>
> Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
> scheme@(guile-user) [1]>
>
> I don't understand what happened to all the other arguments. It looks
> like the throw invocation in guix/records.scm was written carefully so
> that it would throw exactly the arguments that display-error expects to
> receive, but some of the arguments apparently went missing (e.g., the
> "~a: record ABI mismatch; recompilation needed" message). I can't
> figure out why those arguments are missing.
Commit de5cbd4a38a33e0412f1c481fe8e01a871dc13e5 changed the arguments
passed along ‘record-abi-mismatch-error’ exceptions precisely to fix the
problem you report I believe. :-)
What’s probably happening here is that you have a .go file built before
this commit, which is why it’s passing only on argument (the record
type) along the ‘record-abi-mismatch-error’ exception.
Does that make sense?
Thanks,
Ludo’.
This bug report was last modified 6 years and 211 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.