emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#38359: closed (Guix 1.0.1-10.41b4b71 test fails on armhf)


From: GNU bug Tracking System
Subject: bug#38359: closed (Guix 1.0.1-10.41b4b71 test fails on armhf)
Date: Tue, 10 Dec 2019 10:01:02 +0000

Your message dated Tue, 10 Dec 2019 11:00:26 +0100
with message-id <address@hidden>
and subject line Re: bug#38359: Guix 1.0.1-10.41b4b71 test fails on armhf
has caused the debbugs.gnu.org bug report #38359,
regarding Guix 1.0.1-10.41b4b71 test fails on armhf
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden.)


-- 
38359: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=38359
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: Guix 1.0.1-10.41b4b71 test fails on armhf Date: Mon, 25 Nov 2019 12:51:45 +0100 User-agent: mu4e 1.2.0; emacs 26.3
Hello,

I have 3 failing tests when building guix 1.0.1-10.41b4b71 on armhf. I
didn't build with -K argument and as it takes ~10 hours, so I'll just paste
my terminal output for now.

It seems to fail on ci.guix.info but the log is partial?

http://ci.guix.info/log/ma98kc90y5jp7h1ydxjlfa7r3nx0sd37-guix-1.0.1-10.41b4b71

Here is my output:

--8<---------------cut here---------------start------------->8---
=================================================
   GNU Guix 1.0.1-10.41b4b71: ./test-suite.log
=================================================
  
# TOTAL: 975
# PASS:  903
# SKIP:  67
# XFAIL: 2
# FAIL:  3
# XPASS: 0
# ERROR: 0
--8<---------------cut here---------------end--------------->8---

and the failing tests:

--8<---------------cut here---------------start------------->8---
test-name: make-lzip-input-port/compressed
location: /tmp/guix-build-guix-1.0.1-10.41b4b71.drv-0/source/tests/lzlib.scm:111
source:
+ (test-assert
+   "make-lzip-input-port/compressed"
+   (let* ((len (pk 'len (+ 10 (random 4000 %seed))))
+          (data (random-bytevector len))
+          (compressed
+            (make-lzip-input-port/compressed
+              (open-bytevector-input-port data)))
+          (result
+            (call-with-lzip-input-port
+              compressed
+              get-bytevector-all)))
+     (pk (bytevector-length result)
+         (bytevector-length data))
+     random seed for tests: 1574602043
(bytevector=? result data)))

;;; (len 3501)
actual-value: #f
actual-error:
+ (wrong-type-arg
+   #f
+   "Wrong type to apply: ~S"
+   (#f)
+   (#f))
result: FAIL
--8<---------------cut here---------------end--------------->8---

and,

--8<---------------cut here---------------start------------->8---
test-name: client
location: 
/tmp/guix-build-guix-1.0.1-10.41b4b71.drv-0/source/tests/processes.scm:43
source:
+ (test-assert
+   "client"
+   (with-store
+     store
+     (let* ((session
+              (find (lambda (session)
+                      (= (getpid)
+                         (process-id (daemon-session-client session))))
+                    (daemon-sessions)))
+            (daemon (daemon-session-process session)))
+       (and (kill (process-id daemon) 0)
+            (string-suffix?
+              "guix-daemon"
+              (first (process-command daemon)))))))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   "struct_vtable"
+   "Wrong type argument in position ~A (expecting ~A): ~S"
+   (1 "struct" #f)
+   (#f))
result: FAIL
--8<---------------cut here---------------end--------------->8---

and,

--8<---------------cut here---------------start------------->8---
test-name: client + lock
location: 
/tmp/guix-build-guix-1.0.1-10.41b4b71.drv-0/source/tests/processes.scm:53
source:
+ (test-assert
+   "client + lock"
+   (with-store
+     store
+     (call-with-temporary-directory
+       (lambda (directory)
+         (let* ((token1 (string-append directory "/token1"))
+                (token2 (string-append directory "/token2"))
+                (exp (gexp (begin
+                             (ungexp (random-text))
+                             (mkdir (ungexp token1))
+                             (let loop ()
+                               (unless
+                                 (file-exists? (ungexp token2))
+                                 (sleep 1)
+                                 (loop)))
+                             (mkdir (ungexp output)))))
+                (guile (package-derivation store %bootstrap-guile))
+                (drv (run-with-store
+                       store
+                       (gexp->derivation
+                         "foo"
+                         exp
+                         #:guile-for-build
+                         guile)))
+                (thread
+                  (call-with-new-thread
+                    (lambda () (build-derivations store (list drv)))))
+                (_ (let loop ()
+                     (unless
+                       (file-exists? token1)
+                       (usleep 200)
+                       (loop))))
+                (session
+                  (find (lambda (session)
+                          (= (getpid)
+                             (process-id (daemon-session-client session))))
+                        (daemon-sessions)))
+                (locks (daemon-session-locks-held (pk 'session session))))
+           (call-with-output-file token2 (const #t))
+           (equal?
+             (list (string-append
+                     (derivation->output-path drv)
+                     ".lock"))
+             locks))))))

;;; (session #f)
actual-value: #f
actual-error:
+ (wrong-type-arg
+   "struct_vtable"
+   "Wrong type argument in position ~A (expecting ~A): ~S"
+   (1 "struct" #f)
+   (#f))
result: FAIL
--8<---------------cut here---------------end--------------->8---

Thanks,

Mathieu



--- End Message ---
--- Begin Message --- Subject: Re: bug#38359: Guix 1.0.1-10.41b4b71 test fails on armhf Date: Tue, 10 Dec 2019 11:00:26 +0100 User-agent: mu4e 1.2.0; emacs 26.3
Hola!

> As for the detection, this appears to work:
>
>   (define (binfmt-misc?)
>     (let ((pid (getpid))
>           (cmdline (call-with-input-file "/proc/self/cmdline" 
> get-string-all)))
>       (match (primitive-fork)
>         (0 (dynamic-wind
>              (const #t)
>              (lambda ()
>                (exit (not (equal? (call-with-input-file (format #f 
> "/proc/~a/cmdline" pid)
>                                     get-string-all)
>                                   cmdline))))
>              (const #t)))
>         (x (zero? (pk (cdr (waitpid x))))))))
>
> WDYT?

Nice trick, I didn't think of forking process to fool qemu-user ;)

Pushed a fix with your snippet as
0b5ad0e756a34d5e3ed1f37c3d4083a330fa33f5.

Thanks,

Mathieu


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]