Bug#855027: guile-2.0: FTBFS[kfreebsd-amd64]: 00-repl-server.test "Resource temporarily unavailable"
Package: src:guile-2.0
Version: 2.0.13+1-2
Severity: important
User: debian-bsd@lists.debian.org
Usertags: kfreebsd
Hello,
guile-2.0 FTBFS on kfreebsd-amd64, since the addition of
0003-tests-Avoid-race-condition-in-REPL-server-test.patch in 2.0.13+1-4
https://buildd.debian.org/status/fetch.php?pkg=guile-2.0&arch=kfreebsd-amd64&ver=2.0.13%2B1-4&stamp=1481333083&raw=0
| FAIL: 00-repl-server.test: repl-server: simple expression - arguments:
| (expected-value "scheme@(repl-server)> $1 = 42\n" actual-value:
| scheme@(repl-server)> While reading expression:
| ERROR: In procedure fport_fill_input: Resource temporarily unavailable
| scheme@(repl-server)> While reading expression:
| ERROR: In procedure fport_fill_input: Resource temporarily unavailable
| scheme@(repl-server)> While reading expression:
| ERROR: In procedure fport_fill_input: Resource temporarily unavailable
I think the newly-added call to select() is returning EAGAIN:
+
+ ;; Wait until 'repl-reader' in boot-9 has written the prompt.
+ ;; Otherwise, if we write too quickly, 'repl-reader' checks for
+ ;; 'char-ready?' and doesn't print the prompt.
+ (match (select (list socket) '() (list socket) 3)
+ (((_) () ())
+ (display "(+ 40 2)\n(quit)\n" socket)
+ (read-string socket)))))
But I think that is quite normal, at least on kfreebsd. In
http://man7.org/linux/man-pages/man2/select.2.html it is stated that
"Portable programs may wish to check for EAGAIN and loop, just as with
EINTR."
I'm unfortunately not a Guile programmer so I wouldn't know how to do
that here.
I chose severity 'important' because, although kfreebsd is not a release
architecture, src:guile-2.0 is a build-dependency of some of the
build-essential packages in sid.
Thanks!
-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: kfreebsd-amd64 (x86_64)
Kernel: kFreeBSD 10.1-0-amd64
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
Reply to: