GNU bug report logs

#23582 'call-with-container' fails to mount /dev/mqueue with EBUSY (on Ubuntu)

PackageSource(s)Maintainer(s)
guix PTS Buildd Popcon
Reply or subscribe to this bug. View this bug as an mbox, status mbox, or maintainer mbox

Report forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Thu, 19 May 2016 15:19:01 GMT) (full text, mbox, link).


Acknowledgement sent to Konrad Hinsen <konrad.hinsen@fastmail.net>:
New bug report received and forwarded. Copy sent to bug-guix@gnu.org. (Thu, 19 May 2016 15:19:01 GMT) (full text, mbox, link).


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

From: Konrad Hinsen <konrad.hinsen@fastmail.net>
To: bug-guix@gnu.org
Subject: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Thu, 19 May 2016 17:17:50 +0200
[Message part 1 (text/plain, inline)]
SKIP: tests/base32.scm
PASS: tests/base64.scm
PASS: tests/cpio.scm
PASS: tests/hash.scm
PASS: tests/pk-crypto.scm
PASS: tests/pki.scm
PASS: tests/sets.scm
PASS: tests/gnu-maintenance.scm
PASS: tests/substitute.scm
PASS: tests/builders.scm
PASS: tests/derivations.scm
PASS: tests/grafts.scm
PASS: tests/ui.scm
PASS: tests/records.scm
PASS: tests/upstream.scm
PASS: tests/combinators.scm
PASS: tests/utils.scm
PASS: tests/build-utils.scm
PASS: tests/packages.scm
SKIP: tests/snix.scm
PASS: tests/hackage.scm
PASS: tests/cran.scm
PASS: tests/elpa.scm
PASS: tests/store.scm
PASS: tests/monads.scm
PASS: tests/gexp.scm
PASS: tests/nar.scm
PASS: tests/union.scm
PASS: tests/profiles.scm
PASS: tests/syscalls.scm
SKIP: tests/gremlin.scm
PASS: tests/lint.scm
PASS: tests/publish.scm
PASS: tests/scripts.scm
PASS: tests/size.scm
PASS: tests/graph.scm
PASS: tests/challenge.scm
PASS: tests/cve.scm
PASS: tests/file-systems.scm
PASS: tests/system.scm
PASS: tests/services.scm
PASS: tests/scripts-build.scm
PASS: tests/containers.scm
PASS: tests/import-utils.scm
PASS: tests/pypi.scm
PASS: tests/cpan.scm
PASS: tests/gem.scm
PASS: tests/guix-build.sh
PASS: tests/guix-download.sh
PASS: tests/guix-hash.sh
PASS: tests/guix-package.sh
PASS: tests/guix-package-net.sh
PASS: tests/guix-system.sh
PASS: tests/guix-archive.sh
PASS: tests/guix-authenticate.sh
PASS: tests/guix-environment.sh
FAIL: tests/guix-environment-container.sh
PASS: tests/guix-graph.sh
PASS: tests/guix-lint.sh
PASS: tests/guix-register.sh
PASS: tests/guix-gc.sh
PASS: tests/guix-daemon.sh
============================================================================
Testsuite summary for GNU Guix 0.10.0
============================================================================
# TOTAL: 565
# PASS:  561
# SKIP:  3
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to bug-guix@gnu.org
============================================================================
[test-suite.log (text/x-log, attachment)]

Information forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Fri, 20 May 2016 12:13:01 GMT) (full text, mbox, link).


Message #8 received at 23582@debbugs.gnu.org (full text, mbox, reply):

From: ludo@gnu.org (Ludovic Courtès)
To: Konrad Hinsen <konrad.hinsen@fastmail.net>
Cc: davet@gnu.org, 23582@debbugs.gnu.org
Subject: Re: bug#23582: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Fri, 20 May 2016 14:12:40 +0200
Hi Konrad,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

> FAIL: tests/guix-environment-container
> ======================================
>
> + set -e
> + guix environment --version
> guix environment (GNU Guix) 0.10.0
> Copyright (C) 2016 the Guix authors
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> + guile -c '((@@ (guix scripts environment) assert-container-features))'
> + tmpdir=t-guix-environment-20990
> + trap 'rm -r "$tmpdir"' EXIT
> + mkdir t-guix-environment-20990
> + guix environment --container --ad-hoc --bootstrap guile-bootstrap -- guile -c '(exit 42)'
> accepted connection from pid 21005, user hinsen
> + test 1 = 42
> + rm -r t-guix-environment-20990
> FAIL tests/guix-environment-container.sh (exit status: 1)

Could you show the output of “uname -srvo” on this machine?  What
distribution does it run?

Also, from the top-level build directory, could you run:

  ./pre-inst-env strace -f -s 234 -o log \
     guix environment --container --ad-hoc --bootstrap guile-bootstrap \
     -- guile -c '(exit 42)'

and send the ‘log’ file (gzipped)?

Thanks for your report!

Ludo’.




Information forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Fri, 20 May 2016 18:43:02 GMT) (full text, mbox, link).


Message #11 received at 23582@debbugs.gnu.org (full text, mbox, reply):

From: Konrad Hinsen <konrad.hinsen@fastmail.net>
To: Ludovic Courtès <ludo@gnu.org>
Cc: davet@gnu.org, 23582@debbugs.gnu.org
Subject: Re: bug#23582: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Fri, 20 May 2016 20:42:05 +0200
[Message part 1 (text/plain, inline)]
Hi Ludovic,

> Could you show the output of “uname -srvo” on this machine?  What
> distribution does it run?

$ uname -srvo
Linux 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 GNU/Linux

The base system is Ubuntu 16.04, to which I added the Guix binary 
distribution 0.10.

> Also, from the top-level build directory, could you run:
>
>    ./pre-inst-env strace -f -s 234 -o log \
>       guix environment --container --ad-hoc --bootstrap guile-bootstrap \
>       -- guile -c '(exit 42)'

$ guix environment guix

[dev] $ ./pre-inst-env strace -f -s 234 -o log guix environment 
--container --ad-hoc --bootstrap guile-bootstrap -- guile -c '(exit 42)'
guix environment: error: failed to connect to 
`/usr/local/var/guix/daemon-socket/socket': No such file or directory

The log file is attached, but I somehow suspect that the above error 
message already suggests what's going on - but not to me!

Konrad.

[log.gz (application/gzip, attachment)]

Information forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Fri, 20 May 2016 22:49:01 GMT) (full text, mbox, link).


Message #14 received at 23582@debbugs.gnu.org (full text, mbox, reply):

From: Leo Famulari <leo@famulari.name>
To: Konrad Hinsen <konrad.hinsen@fastmail.net>
Cc: Ludovic Courtès <ludo@gnu.org>, davet@gnu.org, 23582@debbugs.gnu.org
Subject: Re: bug#23582: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Fri, 20 May 2016 18:48:10 -0400
On Fri, May 20, 2016 at 08:42:05PM +0200, Konrad Hinsen wrote:
> $ uname -srvo
> Linux 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 GNU/Linux

I'd guess that Ubuntu, like Debian, by default disables the unprivileged
creation of containers.

What is the value of '/proc/sys/kernel/unprivileged_userns_clone'?

> [dev] $ ./pre-inst-env strace -f -s 234 -o log guix environment --container
> --ad-hoc --bootstrap guile-bootstrap -- guile -c '(exit 42)'
> guix environment: error: failed to connect to
> `/usr/local/var/guix/daemon-socket/socket': No such file or directory

I think this is unrelated.

If you followed the instructions in the manual while installing Guix
[0], then your daemon's socket should be in /var/guix. When building
Guix from the Git checkout, did you set the value of localstatedir like
this when configuring?

$ ./configure --localstatedir=/var

If not, it defaults to '/usr/local'. If that's what happened, can you
reconfigure as shown above, and try Ludo's command again?

[0]
https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html#Binary-Installation




Information forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Sat, 21 May 2016 07:22:01 GMT) (full text, mbox, link).


Message #17 received at 23582@debbugs.gnu.org (full text, mbox, reply):

From: Konrad Hinsen <konrad.hinsen@fastmail.net>
To: Leo Famulari <leo@famulari.name>
Cc: Ludovic Courtès <ludo@gnu.org>, davet@gnu.org, 23582@debbugs.gnu.org
Subject: Re: bug#23582: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Sat, 21 May 2016 09:21:39 +0200
[Message part 1 (text/plain, inline)]
Hi Leo,

> I'd guess that Ubuntu, like Debian, by default disables the unprivileged
> creation of containers.
>
> What is the value of '/proc/sys/kernel/unprivileged_userns_clone'?

$ cat /proc/sys/kernel/unprivileged_userns_clone
1

> If you followed the instructions in the manual while installing Guix
> [0], then your daemon's socket should be in /var/guix. When building
> Guix from the Git checkout, did you set the value of localstatedir like
> this when configuring?
>
> $ ./configure --localstatedir=/var

No. I just followed the instructions under "contributing" blindly.

> If not, it defaults to '/usr/local'. If that's what happened, can you
> reconfigure as shown above, and try Ludo's command again?

I did:

$ ./configure --localstatedir=/var
$ make check

The environment test case still fails. Then again

[dev]$ ./pre-inst-env strace -f -s 234 -o log guix environment 
--container --ad-hoc --bootstrap guile-bootstrap -- guile -c '(exit 42)'
substitute: warning: failed to install locale: Invalid argument
substitute: updating list of substitutes from 
'https://mirror.hydra.gnu.org'... substitute: updating list of 
substitutes from 'https://mirror.hydra.gnu.org'... substitute: updating 
list of substitutes from 'https://mirror.hydra.gnu.org'... substitute: 
updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://hydra.gnu.org'... 
100.0%
The following derivations will be built:
   /gnu/store/n1mv18v7dvjx3zz6xwryqw6mvfjj68ls-profile.drv
   /gnu/store/90b3v64bp7rjpsd841bxflh7a2h544f9-module-import.drv
   /gnu/store/sc9w2yza3af4p0vjgkkwf7jmdh1m05n6-module-import-compiled.drv
The following file will be downloaded:
   /gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0
warning: failed to install locale: Invalid argument

Found valid signature for 
/gnu/store/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0
From 
https://mirror.hydra.gnu.org/nar/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0
Downloading aiz8db...-guile-bootstrap-2.0 (12.1MiB installed)...

https://mirror.hydra.gnu.org/nar/aiz8db2gni401wc9fgidmcggxyb1czis-guile-bootstrap-2.0 
1.1MiB/s 00:03 | 3.4MiB transferred


No error message this time. The log is attached.

Konrad.

[log.gz (application/gzip, attachment)]

Information forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Sat, 21 May 2016 10:38:02 GMT) (full text, mbox, link).


Message #20 received at 23582@debbugs.gnu.org (full text, mbox, reply):

From: Ben Woodcroft <b.woodcroft@uq.edu.au>
To: Konrad Hinsen <konrad.hinsen@fastmail.net>, Leo Famulari <leo@famulari.name>
Cc: davet@gnu.org, 23582@debbugs.gnu.org
Subject: Re: bug#23582: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Sat, 21 May 2016 20:37:49 +1000
On 21/05/16 17:21, Konrad Hinsen wrote:
> No error message this time. The log is attached.

From teh log:
> 10526 mkdir("/tmp/guix-directory.2EiFxS/dev/mqueue", 0775) = 0
> 10526 mount("mqueue", "/tmp/guix-directory.2EiFxS//dev/mqueue", 
"mqueue", MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL) = -1 EBUSY (Device or 
resource busy)

This then might be the same issue as discussed previously
http://lists.gnu.org/archive/html/help-guix/2016-05/msg00006.html

I managed to reproduce this using a binary download too on a different 
machine, I suspect that there is something Ubuntu/Xenial-specific at play.
ben





Information forwarded to bug-guix@gnu.org:
bug#23582; Package guix. (Sat, 21 May 2016 15:20:02 GMT) (full text, mbox, link).


Message #23 received at 23582@debbugs.gnu.org (full text, mbox, reply):

From: Leo Famulari <leo@famulari.name>
To: Ben Woodcroft <b.woodcroft@uq.edu.au>
Cc: Konrad Hinsen <konrad.hinsen@fastmail.net>, davet@gnu.org, 23582@debbugs.gnu.org
Subject: Re: bug#23582: Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)
Date: Sat, 21 May 2016 11:19:10 -0400
On Sat, May 21, 2016 at 08:37:49PM +1000, Ben Woodcroft wrote:
> On 21/05/16 17:21, Konrad Hinsen wrote:
> > No error message this time. The log is attached.
> 
> From teh log:
> > 10526 mkdir("/tmp/guix-directory.2EiFxS/dev/mqueue", 0775) = 0
> > 10526 mount("mqueue", "/tmp/guix-directory.2EiFxS//dev/mqueue", "mqueue",
> MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL) = -1 EBUSY (Device or resource busy)
> 
> This then might be the same issue as discussed previously
> http://lists.gnu.org/archive/html/help-guix/2016-05/msg00006.html

A quick scan through the mqueue man pages suggests mq_notify(3):

"mq_notify - register for notification when a message is available

[...]

EBUSY  Another process has already registered to receive
notification for this message queue."




Changed bug title to ''call-with-container' fails to mount /dev/mqueue with EBUSY (on Ubuntu)' from 'Test failure on "make check" from a fresh git checkout (commit 9684e30b9b597b93ae9c797ba8f3b40eff893ebe)' Request was from ludo@gnu.org (Ludovic Courtès) to control@debbugs.gnu.org. (Sat, 21 May 2016 18:26:02 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


debbugs.gnu.org maintainers <help-debbugs@gnu.org>. Last modified: Wed Apr 16 04:04:46 2025; Machine Name: wallace-server

GNU bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.