Hi Mark, > Andy Wingo <wi...@pobox.com> wrote: >> I pushed a (sigaction SIGPIPE SIG_IGN) to (system repl repl), which >> should fix the issue. > > Isn't this a bad idea? SIGPIPE generally indicates that something went > wrong. If we ignore it, important problems may go unnoticed. To me, > this seems kind of like ignoring SIGSEGV to get around a memory access > to an unmapped area that would be inconvenient to prevent.
We do not ignore the problem, we simply allow guile to recat to the problem ;) Where previously guile simply died, I now see this in the father guile-process when the problematic situation arises: ,----[ Guile Output ] | scheme@(guile-user)> Backtrace: | In ice-9/boot-9.scm: | 170: 17 [catch #t #<catch-closure a283a10> ...] | In unknown file: | ?: 16 [catch-closure] | In ice-9/boot-9.scm: | 170: 15 [catch #t #<procedure a270a20 at system/repl/server.scm:115:10 ()> ...] | In system/repl/server.scm: | 122: 14 [serve-client #<input-output: socket 81> #(2 2130706433 49515)] | In unknown file: | ?: 13 [with-continuation-barrier #<procedure a2837c0 at system/repl/server.scm:123:3 ()>] | In ice-9/boot-9.scm: | 170: 12 [catch #t #<catch-closure a2837b0> ...] | In unknown file: | ?: 11 [catch-closure] | In module/ice-9/r4rs.scm: | 170: 10 [with-input-from-port #<variable a2ccf88 value: #<input: soft 967d8e8>> ...] | 174: 9 [with-output-to-port #<variable a2cce30 value: #<output: file /dev/pts/1>> ...] | 178: 8 [with-error-to-port #<variable a2cccd8 value: #<output: file /dev/pts/1>> ...] | In system/repl/server.scm: | 131: 7 [#<procedure 9a57f10 at system/repl/server.scm:129:15 ()>] | In module/system/repl/repl.scm: | 160: 6 [run-repl #] | 123: 5 [#<procedure 9a4d280 at module/system/repl/repl.scm:118:4 (key . args)> read-error ...] | In module/ice-9/format.scm: | 1574: 4 [format #<input-output: socket 81> "While reading expression: | "] | 747: 3 [format:format-work "While reading expression: | " ()] | 234: 2 [anychar-dispatch] | 80: 1 [format:out-char #\h] | In unknown file: | ?: 0 [write-char #\h #<input-output: socket 81>] | | ERROR: In procedure write-char: | ERROR: In procedure fport_write: Broken pipe | Backtrace: | In ice-9/boot-9.scm: | 170: 3 [catch #t #<catch-closure a283a10> ...] | In unknown file: | ?: 2 [catch-closure] | In ice-9/boot-9.scm: | 170: 1 [catch #t #<procedure a270a20 at system/repl/server.scm:115:10 ()> ...] | In system/repl/server.scm: | 122: 0 [serve-client #<input-output: socket 81> #(2 2130706433 49515)] | | system/repl/server.scm:121:2: In procedure serve-client: | system/repl/server.scm:121:2: In procedure fport_write: Broken pipe `---- Cheers Detlev -- Don't trust everything you read, and don't assume every poster in a thread is actually relevant to the problem. -- Stefan Monnier <jwvlj1gk44h.fsf-monnier+em...@gnu.org>