the repl enters a busy loop printing errors if stderr gets borked

Bug #1520694 reported by Attila Lendvai
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Confirmed
Undecided
Unassigned

Bug Description

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.

Tags: debugger
Stas Boukarev (stassats)
Changed in sbcl:
status: New → Confirmed
assignee: nobody → Stas Boukarev (stassats)
Stas Boukarev (stassats)
Changed in sbcl:
assignee: Stas Boukarev (stassats) → nobody
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.