Package: src:guile-2.0 Version: 2.0.13+1-2 Severity: important User: [email protected] 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)

