guix-register test fails

DoneSubmitted by Philip Woods.
Details
2 participants
  • Philip Woods
  • Ludovic Courtès
Owner
unassigned
Severity
normal
P
P
Philip Woods wrote on 11 Oct 2014 20:22
(address . bug-guix@gnu.org)
CACm166h4yTpuBqePdWLcPPEg1sOcbpnVOtXRPQpy67gGru6+xw@mail.gmail.com
====================================
GNU Guix 0.8: ./test-suite.log
====================================

# TOTAL: 32
# PASS: 31
# SKIP: 0
# XFAIL: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: tests/guix-register
=========================

+ guix-register --version
guix-register (GNU Guix) 0.8
+ new_store=t-register-4387
+ closure=t-register-closure-4387
+ rm -rf t-register-4387
+ exit_hook=:
+ trap 'chmod -R +w t-register-4387 ; rm -rf t-register-4387
t-register-closure-4387 ; $exit_hook' EXIT
+ new_file=/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387
+ echo 'Fake store file to test registration.'
+ guix-register
+ new_file2=/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387-duplicate
+ cat /home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387
+ guix-register
+ guile -c '
(exit (= (stat:ino (stat
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387"))
(stat:ino (stat
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387-duplicate"))))'
+ guile -c '
(use-modules (guix store))
(define s (open-connection))
(exit (and (valid-path? s
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387")
(valid-path? s
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387-duplicate")
(null? (references s
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387"))
(null? (references s
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387-duplicate"))
(pair? (delete-paths s (list
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387"
"/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387-duplicate")))))'
accepted connection from pid 4398, uid 1000
finding garbage collector roots...
cannot read potential root
`/home/elzair/Development/scheme/guix/test-tmp/var/4381/manifests'
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/elzair/Development/scheme/guix/nix/scripts/list-runtime-roots
;;; compiled /home/elzair/Development/scheme/guix/test-tmp/var/4381/cache-4381/guile/ccache/2.0-LE-8-2.0/home/elzair/Development/scheme/guix/nix/scripts/list-runtime-roots.go
deleting `/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387'
deleting `/home/elzair/Development/scheme/guix/test-tmp/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-guix-register-4387-duplicate'
deleting `/home/elzair/Development/scheme/guix/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 17.95 MiB
5 operations
+ mkdir -p t-register-4387//gnu/store
++ cd t-register-4387//gnu/store
++ pwd -P
+ new_store_dir=/home/elzair/Development/scheme/guix/t-register-4387/gnu/store
++ cd t-register-4387
++ pwd -P
+ new_store=/home/elzair/Development/scheme/guix/t-register-4387
++ guix build guile-bootstrap
accepted connection from pid 4406, uid 1000
substitute-binary: warning: authentication and authorization of
substitutes disabled!
substitute-binary: guix substitute-binary: warning: ACL for archive
imports seems to be uninitialized, substitutes may be unavailable
13 operations
+ to_copy=/home/elzair/Development/scheme/guix/test-tmp/store/ffl6r8m3vfjb8jkbrdp9jbfn3x2i4xai-guile-bootstrap-2.0
+ cp -r /home/elzair/Development/scheme/guix/test-tmp/store/ffl6r8m3vfjb8jkbrdp9jbfn3x2i4xai-guile-bootstrap-2.0
/home/elzair/Development/scheme/guix/t-register-4387/gnu/store
++ basename /home/elzair/Development/scheme/guix/test-tmp/store/ffl6r8m3vfjb8jkbrdp9jbfn3x2i4xai-guile-bootstrap-2.0
+ copied=/home/elzair/Development/scheme/guix/t-register-4387/gnu/store/ffl6r8m3vfjb8jkbrdp9jbfn3x2i4xai-guile-bootstrap-2.0
+ cat
+ guix-register -p /home/elzair/Development/scheme/guix/t-register-4387
error: creating directory `/gnu': Permission denied
+ chmod -R +w t-register-4387
+ rm -rf t-register-4387 t-register-closure-4387
+ :
L
L
Ludovic Courtès wrote on 12 Oct 2014 00:29
(name . Philip Woods)(address . elzairthesorcerer@gmail.com)(address . 18689@debbugs.gnu.org)
877g0644vz.fsf@gnu.org
Philip Woods <elzairthesorcerer@gmail.com> skribis:

Toggle quote (3 lines)
> + guix-register -p /home/elzair/Development/scheme/guix/t-register-4387
> error: creating directory `/gnu': Permission denied

Here ‘guix-register’ attempts to create /gnu/store if it doesn’t exist
yet, hence this error (I don’t have this error on my machine because
/gnu/store already exists.)

Could you apply the patch below (with ‘patch -p1 < foo.patch’), and then
run “make check TESTS=tests/guix-register.sh”, making sure that /gnu
does *not* already exist?
Toggle diff (25 lines)
diff --git a/nix/guix-register/guix-register.cc b/nix/guix-register/guix-register.cc
index 92eedab..f5c610f 100644
--- a/nix/guix-register/guix-register.cc
+++ b/nix/guix-register/guix-register.cc
@@ -224,16 +224,16 @@ main (int argc, char *argv[])
     {
       argp_parse (&argp, argc, argv, 0, 0, 0);
 
+      /* Instantiate the store.  This creates any missing directories among
+	 'settings.nixStore', 'settings.nixDBPath', etc.  */
+      LocalStore store;
+
       if (!prefix.empty ())
 	/* Under the --prefix tree, the final name of the store will be
 	   NIX_STORE_DIR.  Set it here so that the database uses file names
 	   prefixed by NIX_STORE_DIR and not PREFIX + NIX_STORE_DIR.  */
 	settings.nixStore = NIX_STORE_DIR;
 
-      /* Instantiate the store.  This creates any missing directories among
-	 'settings.nixStore', 'settings.nixDBPath', etc.  */
-      LocalStore store;
-
       register_validity (&store, *input, deduplication);
     }
   catch (std::exception &e)
Thanks in advance,
Ludo’.
L
L
Ludovic Courtès wrote on 2 Nov 2014 21:39
(name . Philip Woods)(address . elzairthesorcerer@gmail.com)(address . 18689-done@debbugs.gnu.org)
87k33djq0p.fsf@gnu.org
ludo@gnu.org (Ludovic Courtès) skribis:

Toggle quote (26 lines)
> diff --git a/nix/guix-register/guix-register.cc b/nix/guix-register/guix-register.cc
> index 92eedab..f5c610f 100644
> --- a/nix/guix-register/guix-register.cc
> +++ b/nix/guix-register/guix-register.cc
> @@ -224,16 +224,16 @@ main (int argc, char *argv[])
> {
> argp_parse (&argp, argc, argv, 0, 0, 0);
>
> + /* Instantiate the store. This creates any missing directories among
> + 'settings.nixStore', 'settings.nixDBPath', etc. */
> + LocalStore store;
> +
> if (!prefix.empty ())
> /* Under the --prefix tree, the final name of the store will be
> NIX_STORE_DIR. Set it here so that the database uses file names
> prefixed by NIX_STORE_DIR and not PREFIX + NIX_STORE_DIR. */
> settings.nixStore = NIX_STORE_DIR;
>
> - /* Instantiate the store. This creates any missing directories among
> - 'settings.nixStore', 'settings.nixDBPath', etc. */
> - LocalStore store;
> -
> register_validity (&store, *input, deduplication);
> }
> catch (std::exception &e)

Committed as 47e643d. Closing this bug.

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 18689@debbugs.gnu.org