Comment 0 for bug 1520694

Revision history for this message
Attila Lendvai (attila-lendvai) wrote :

TOPLEVEL-REPL installs a (catch 'toplevel-catcher ...)
inside its LOOP. If any error nesting happens while inside that
LOOP (e.g. due to a "Broken pipe" on stderr, which is used by the
debugger), then when ERROR-ERROR throws 'toplevel-catcher
then it will only unwind until inside this LOOP, and thus the repl
will loop forever, busy printing errors.

to reproduce create a /tmp/test.sh:

#!/bin/sh
exec sbcl 2>&1 | tee /tmp/test.log

start it, and when the repl is up press Ctrl-C.

it should start busy loop printing errors in the terminal.

please before touching error-error consider merging this to spare
me some headaches: https://github.com/sbcl/sbcl/pull/3