GNU bug report logs - #42558
‘guix pack -RR’: audit library is dynamically linked

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Date: Mon, 27 Jul 2020 14:05:02 UTC

Severity: normal

Tags: fixed

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 42558 in the body.
You can then email your comments to 42558 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#42558; Package guix. (Mon, 27 Jul 2020 14:05:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 27 Jul 2020 14:05:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: <bug-guix <at> gnu.org>
Subject: ‘guix pack -RR’: audit
 library is dynamically linked
Date: Mon, 27 Jul 2020 16:04:21 +0200
The audit library created by ‘guix pack -RR’, called ‘pack-audit.so’, is
dynamically-linked.  Thus, it cannot be loaded (unless there are working
libgcc.so and libc.so in the search path?), leading to failures like
this:

--8<---------------cut here---------------start------------->8---
$ GUIX_EXECUTION_ENGINE=performance ./bin/sinfo --version
ERROR: ld.so: object '/…/lcourtes/tmp/t/gnu/store/0n6nnvzgxyisg0bszb5zqxp2gzdwh7h3-pack-audit.so' cannot be loaded as audit interface: cannot open shared object file; ignored.
/…/lcourtes/tmp/t/gnu/store/3dhy2f3djmm1h5ix5aa84lrskxzrl6d0-slurm-19.05.3-2/bin//sinfo: error while loading shared libraries: libslurmfull.so: cannot open shared object file: No such file or directory
--8<---------------cut here---------------end--------------->8---

The root cause is that ‘pack-audit.so’ NEEDs libgcc_s.so, which on this
machine could not be loaded, and thus resolving the other dependencies
of the wrapped executable, like ‘libslurmfull.so’ here, fails.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#42558; Package guix. (Tue, 28 Jul 2020 12:50:01 GMT) Full text and rfc822 format available.

Message #8 received at 42558 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: 42558 <at> debbugs.gnu.org
Subject: Re: bug#42558: ‘guix pack -RR’: audit library is dynamically linked
Date: Tue, 28 Jul 2020 14:49:46 +0200
Ludovic Courtès <ludovic.courtes <at> inria.fr> skribis:

> The audit library created by ‘guix pack -RR’, called ‘pack-audit.so’, is
> dynamically-linked.  Thus, it cannot be loaded (unless there are working
> libgcc.so and libc.so in the search path?), leading to failures like
> this:
>
> $ GUIX_EXECUTION_ENGINE=performance ./bin/sinfo --version
> ERROR: ld.so: object '/…/lcourtes/tmp/t/gnu/store/0n6nnvzgxyisg0bszb5zqxp2gzdwh7h3-pack-audit.so' cannot be loaded as audit interface: cannot open shared object file; ignored.
> /…/lcourtes/tmp/t/gnu/store/3dhy2f3djmm1h5ix5aa84lrskxzrl6d0-slurm-19.05.3-2/bin//sinfo: error while loading shared libraries: libslurmfull.so: cannot open shared object file: No such file or directory
>
> The root cause is that ‘pack-audit.so’ NEEDs libgcc_s.so, which on this
> machine could not be loaded, and thus resolving the other dependencies
> of the wrapped executable, like ‘libslurmfull.so’ here, fails.

Fixed by commit c6c0d5a22c2ee3d7164dab0129b2e4852a4ae76c.

How could this happen?  I think there are two key factors:

  1. Most likely I tested v1 of the patch series on “real” non-Guix
     machines, but when iterating on v2 (which removed ‘--library-path’
     from the ld.so invocation¹) I probably relied on
     ‘tests/guix-pack-relocatable.sh’, which emulates a machine where
     /gnu is empty by mounting a tmpfs on it.

  2. There was another bug in ‘exec_with_loader’ whereby it would
     symlink its store to that writable /gnu.  Thus, the tests would run
     as if the store was already available under /gnu/store, thereby
     hiding the actual issue.  This second bug is fixed by
     c088aa2988ef82289c87ebfd6d07d8f1464dd8f0.

AFAICS we’re all fine now.

You’re very welcome to give it a spin on a Guix-less machine!  Just do:

  guix pack -RR your favorite packages -S /bin=bin

Send the resulting tarball to that machine, and then:

  mkdir test
  cd test
  tar xf /path/to/pack.tar.gz
  GUIX_EXECUTION_ENGINE=fakechroot ./bin/your-favorite-command

Ludo’.

¹ https://issues.guix.gnu.org/41189#8




Added tag(s) fixed. Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Tue, 28 Jul 2020 12:50:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 42558 <at> debbugs.gnu.org and Ludovic Courtès <ludovic.courtes <at> inria.fr> Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Tue, 28 Jul 2020 12:50:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 26 Aug 2020 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 246 days ago.

Previous Next


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