Subject: Re: bug#30879: Commit bc499b113 broke guix on [email-masked], improper <operating-system> field initialization

From: Eric Bavier <[email-masked]>
Date: Wed, 21 Mar 2018 16:14:03 -0500

On Wed, Mar 21, 2018 at 10:04:00PM +0100, Ludovic Courtès wrote:
> Eric Bavier <[email-masked]> skribis:
> 
> > On Wed, Mar 21, 2018 at 12:12:02AM +0100, Ludovic Courtès wrote:
> >
> >> That sounds a lot like regular ABI breakage: a new <operating-system>
> >> field was added but gnu/tests/base.go wasn’t rebuilt, and thus was
> >> expecting the previous struct layout.
> >> 
> >> Does “rm gnu/tests/base.go && make” suffice to fix this issue?
> >
> > No, it doesn't help.  Previously I had been running "make clean-go"
> > before each "make.
> >
> > The error/backtrace is issued when build-aux/compile-all.scm tries to
> > load gnu/tests/base.scm, before it even gets to compilation.
> 
> Oh, can you “rm -rf ~/.cache/guile”?

"rm -rf ~/.cache/guile && make clean-go && make" resulted in an error,
but a slightly different backtrace:

```
  LOAD     gnu/tests/base.scm
Backtrace:
In ice-9/eval.scm:
 432: 19 [eval # #]
In ice-9/boot-9.scm:
2412: 18 [save-module-excursion #<procedure 2998d7c0 at ice-9/boot-9.scm:4084:3 ()>]
4091: 17 [#<procedure 2998d7c0 at ice-9/boot-9.scm:4084:3 ()>]
1734: 16 [%start-stack load-stack ...]
1739: 15 [#<procedure 299b26c0 ()>]
In unknown file:
   ?: 14 [primitive-load "/home/users/bavier/src/guix/./build-aux/compile-all.scm"]
In guix/build/compile.scm:
 158: 13 [compile-files "." "/home/users/bavier/src/guix" ...]
 107: 12 [load-files "." # # ...]
In ice-9/boot-9.scm:
2900: 11 [resolve-interface (gnu tests base) #:select ...]
2825: 10 [#<procedure 298f2200 at ice-9/boot-9.scm:2813:4 (name #:optional autoload version #:key ensure)> # ...]
3101: 9 [try-module-autoload (gnu tests base) #f]
2412: 8 [save-module-excursion #<procedure 30cd0ed0 at ice-9/boot-9.scm:3102:17 ()>]
3121: 7 [#<procedure 30cd0ed0 at ice-9/boot-9.scm:3102:17 ()>]
In unknown file:
   ?: 6 [primitive-load-path "gnu/tests/base" ...]
In gnu/tests/base.scm:
 390: 5 [#<procedure 30cdae40 ()>]
  63: 4 [run-basic-test # # "basic" ...]
In gnu/system.scm:
 501: 3 [operating-system-services # # #f]
 476: 2 [essential-services # # #f]
 576: 1 [operating-system-etc-service #]
In gnu/system/nss.scm:
 217: 0 [name-service-switch->string (# # # # ...)]

gnu/system/nss.scm:217:19: In procedure name-service-switch->string:
gnu/system/nss.scm:217:19: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): (#<<service> type: #<service-type login ...
```

-- 
Eric Bavier, Scientific Libraries, Cray Inc.