"pelzflorian (Florian Pelz)" <[email protected]> writes:
> I get the following error 3 in 7 times when building Guile 2.2.4 on
> Guix on Debian Buster on my Beaglebone Black (armhf architecture):
>
> PASS: repl-server: simple expression
> ERROR: repl-server: HTTP inter-protocol attack - arguments: ((system-error
> "fport_write" "~A" ("Datenübergabe unterbrochen (broken pipe)") (32)))
[...]
> Note that the test does not fail reliably but only sometimes.
I've seen the same thing, and I had a suspicion that they mostly (only?)
happen during parallel testing, e.g. "make -j5 check". That suspicion
was reinforced when I was able to reproduce the error more relably via a
few moreutils parallel runs like this:
$ parallel -j 3 ./check-guile \
-- 00-repl-server.test 00-repl-server.test \
I found that the failure is due to a throw from write request and
wrapping it like this:
;; Simulate an HTTP inter-protocol attack.
(catch 'system-error
(lambda ()
(write-request (build-request (string->uri "http://localhost"))
socket))
(lambda what
(format (current-error-port) "write-request exception ~s\n" what)
(throw 'unresolved what)))
does suppress the failure, while writing the same exception list seen in
the original failures to stderr.
I haven't actually looked closely at the test to see what the failure
might mean.
Thanks
--
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4