cuirass: Fail to fetch "guix" input.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Mathieu Othacehe
Severity
normal
M
M
Mathieu Othacehe wrote on 2 Oct 2020 11:55
(address . bug-guix@gnu.org)
87v9ft6jfa.fsf@gnu.org
Hello,

Running local tests, I have the following error:

Toggle snippet (28 lines)
2020-10-02T11:54:09 fatal: uncaught exception 'misc-error' in 'build' fiber!
2020-10-02T11:54:09 exception arguments: (#f "Attempt to suspend fiber within continuation barrier" () #f)
In ice-9/boot-9.scm:
1731:15 13 (with-exception-handler #<procedure 7f4eb362df60 at ic?> ?)
1736:10 12 (with-exception-handler _ _ #:unwind? _ # _)
152:2 11 (with-fluid* _ _ _)
718:2 10 (call-with-prompt ("break") #<procedure 7f4eb76adb60 a?> ?)
718:2 9 (call-with-prompt ("continue") #<procedure 7f4eb76ad14?> ?)
In ice-9/eval.scm:
619:8 8 (_ #(#(#<directory (guile-user) 7f4eb72d7f00> #<var?> ?)))
In srfi/srfi-1.scm:
634:9 7 (for-each #<procedure 7f4eb3750660 at cuirass/base.scm?> ?)
In ice-9/boot-9.scm:
1731:15 6 (with-exception-handler #<procedure 7f4eb3673ba0 at ic?> ?)
1669:16 5 (raise-exception _ #:continuable? _)
1764:13 4 (_ #<&compound-exception components: (#<&error> #<&orig?>)
In cuirass/utils.scm:
240:8 3 (_ _ . _)
In ice-9/boot-9.scm:
1731:15 2 (with-exception-handler #<procedure 7f4eb7616480 at ic?> ?)
In cuirass/utils.scm:
241:22 1 (_)
In unknown file:
0 (make-stack #t)
ERROR: In procedure make-stack:
Attempt to suspend fiber within continuation barrier

the specification is:

Toggle snippet (22 lines)
(define manifest
'((#:name . "my-manifest")
(#:load-path-inputs . ("guix"))
(#:package-path-inputs . ())
(#:proc-input . "guix")
(#:proc-file . "build-aux/cuirass/gnu-system.scm")
(#:proc . cuirass-jobs)
(#:proc-args (subset . "all"))
(#:inputs . (((#:name . "guix")
(#:url . "git://git.savannah.gnu.org/guix.git")
(#:load-path . ".")
(#:branch . "master")
(#:no-compile? . #t))
((#:name . "guix2")
(#:url . "git://git.savannah.gnu.org/guix.git")
(#:load-path . ".")
(#:branch . "master")
(#:no-compile? . #t))))
(#:build-outputs . ())))
(list manifest)

It looks like adding a second input, creates an exception during inputs
fetching.

Thanks,

Mathieu

--
M
M
Mathieu Othacehe wrote on 3 Oct 2020 11:16
(address . 43757-done@debbugs.gnu.org)
87h7rbisa6.fsf@gnu.org
Hello,

Toggle quote (3 lines)
> ERROR: In procedure make-stack:
> Attempt to suspend fiber within continuation barrier

Turns out "par-map" call does not seem suspendable, even though I'm not
sure why. Maybe Ludo can help here :) ?

This is fixed with: 761443bca6178b4ac299a8bd368d1cac4abda5f8.

Thanks,

Mathieu
Closed
L
L
Ludovic Courtès wrote on 3 Oct 2020 14:00
(name . Mathieu Othacehe)(address . othacehe@gnu.org)
87k0w7frit.fsf@gnu.org
Hi,

Mathieu Othacehe <othacehe@gnu.org> skribis:

Toggle quote (6 lines)
>> ERROR: In procedure make-stack:
>> Attempt to suspend fiber within continuation barrier
>
> Turns out "par-map" call does not seem suspendable, even though I'm not
> sure why. Maybe Ludo can help here :) ?

‘par-map’ is implemented in terms of futures, and futures use their own
thread pool. What’s likely to block is ‘touch’: it essentially waits on
a condition variable, which Fibers cannot interrupt.

I’d say that mixing fibers and ‘par-map’ is a bad idea. :-)

If we need such a thing, I think we should implement it on top of
Fibers. Implementing futures on top of fibers + channels should be
easier than what (ice-9 futures) does.

Toggle quote (2 lines)
> This is fixed with: 761443bca6178b4ac299a8bd368d1cac4abda5f8.

Why not just replace ‘par-map’ with ‘map’? That sounds easier and I
suspect it doesn’t change much performance-wise.

(There’s a 2nd use of ‘par-map’ in that file.)

Thanks,
Ludo’.
Closed
M
M
Mathieu Othacehe wrote on 3 Oct 2020 15:14
(name . Ludovic Courtès)(address . ludo@gnu.org)
875z7rih9a.fsf@gnu.org
Hey Ludo,

Toggle quote (4 lines)
> ‘par-map’ is implemented in terms of futures, and futures use their own
> thread pool. What’s likely to block is ‘touch’: it essentially waits on
> a condition variable, which Fibers cannot interrupt.

I see, thanks for explaining.

Toggle quote (3 lines)
> Why not just replace ‘par-map’ with ‘map’? That sounds easier and I
> suspect it doesn’t change much performance-wise.

The objective was to still be able to run parallel input fetching, but
you're right, a simple "map" is nicer.

Toggle quote (2 lines)
> (There’s a 2nd use of ‘par-map’ in that file.)

Oh! Fixed too.

Thanks for the quick answer,

Mathieu
Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 43757
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch