[slime-devel] Re: SWANK+CMUCL closed streams bug: "There's junk in this string"

Madhu enometh at meer.net
Fri Jul 13 13:04:42 UTC 2007


Re: http://permalink.gmane.org/gmane.lisp.slime.devel/6368

I have tracked down the problem: When the stream to emacs is closed,
SWANK::DECODE-MESSAGE catches an end-of-file and throws a
SWANK:STREAM-ERROR.  SWANK::SIMPLE-SERVE-EVENTS catches this (via
SWANK::WITH-READER-ERROR-HANDLER) Now there are several code paths but
all result in recursive errors which result from writing about errors on
writing to a closed stream to a closed stream.

- either by invoking the debugger (debugger-hook is slime debugger)
- swank::close-connection writes to the closed-stream by calling
  finish-output

There are several ways to fix this problem. At the least the
finish-output calls should be enclosed in ignore-error forms. Ideally
the current headache inducing stream design would be redesigned with
sanity.

Which patch would you prefer?

--
Madhu












More information about the slime-devel mailing list