[Openmcl-devel] Bug when writing to broken pipe?

Andreas Thiele andreas at atp-media.de
Mon Dec 8 04:45:06 PST 2014


Thanks a lot Gary.

? (#_signal #$SIGPIPE #$SIG_DFL) is a fix for my problem.

I wrote a small reporting tool which the user might pipe to Unix less. It may be, output takes some time and the user reasonably decides to press letter q to abort the analysis. In this case the non-Lisp-aware user would be confronted with the Lisp debugger. I'm glad, I can avoid this situation now.

Thank you.

Regards
Andreas



> -----Ursprüngliche Nachricht-----
> Von: Gary Byers [mailto:gb at clozure.com]
> Gesendet: Montag, 8. Dezember 2014 09:48
> An: Ron Garret
> Cc: Andreas Thiele; openmcl-devel at clozure.com
> Betreff: Re: [Openmcl-devel] Bug when writing to broken pipe?
> 
> On 12/02/2014 10:06:09 AM, Ron Garret wrote:
> > This has nothing to do with your code, or even save-application.  CCL
> > just doesn’t handle a broken pipe on stdout gracefully.  You can
> > reproduce this problem at the command line.  Try:
> >
> > ccl -=b e "(dotimes (i 1000) (print i))" | head
> >
> > rg
> > '
> 
> It doesn't gracefully handle
> 
> ccl -b -e '(close *terminal-io*)'
> 
> either, though it might be quietly hysterical instead of as loudly hysterical as it
> is in Andreas' test case.
> 
> A broken pipe on (a file descriptor associated with) *STANDARD-OUTPUT* is
> a fairly severe condition; it means that the process on the other end of the
> pipe has died unexpectedly.  There's no way to resurrect the dead process
> and reconnect it to the pipe; you could (maybe) somehow try to figure out
> some way to proceed in some cases, but I really think that this is more
> difficult to do than it may appear to be at first glance.  The most reasonable
> things that I can think of generally involve (a) trying to say "a broken pipe
> error occurred" via the most
> reliable means that you can and (b) terminate the process abruptly.
> That happens to be what happens to most programs that try to do I/O on a
> broken pipe on most/all Unixy systems: the process gets a SIGPIPE signal that
> is fatal unless handled (and IIRC largely impractical to handle in any
> reasonable or graceful way.)  CCL's kernel startup code says that the process
> wants to ignore SIGPIPE signals, and when those signals are ignored the OS
> will cause any I/O operation on a broken pipe to return an error code (EPIPE,
> IIRC).  If you wanted to revert to the default behavior (getting a fatal SIGPIPE
> signal on any broken pipe), you can do that via
> 
> ? (#_signal #$SIGPIPE #$SIG_DFL)
> 
> and I really think that that may be as good as anything in cases like the one
> reported here.
> 
> Abruptly killing the CCL process doesn't sound like a very lisp-like way to
> handle an I/O error, but it the lisp-like way may assume that it's OK to write
> to streams based on fd #1.  The -b option can help to ensure that the output
> side of *TERMINAL-IO* is disjoint from
> *STANDARD-OUTPUT* and is instead based on the "controlling TTY", but this
> can only work if there is such a TTY (there generally isn't, for instance, if
> running in an Emacs shell buffer.)
> 
> I'm not sure that it's a good option, but I agree that it should be an option to
> use the :error-handler argument to SAVE-APPLICATION here (that might
> work or might not; for the curious, the reason that the option doesn't work is
> the same reason it didn't work in MCL, and it's not a good reason.)  The
> possible advantage of quitting instead of just dying from SIGPIPE is that
> quitting will try to reset lisp threads; the possible disadvatage is that that
> cleanup code may try to  write to some stream with a broken pipe under it.
> 
> Grace may be in the eye of  the beholder, but none of this sounds very
> graceful to me.
> 
> 
> 
> > On Dec 2, 2014, at 8:40 AM, Andreas Thiele <andreas at atp-media.de>
> > wrote:
> >
> > > Thanks Ron.
> > >
> > > Yes indeed, ignore-errors is just fixes the problem in the provided
> > test case not in my application. I added the complete output plus
> > backtrace of my program. My program calls a function REVISION-REPORT.
> > >
> > > (defun revision-report (revs)
> > >   (let ((sep (make-string 80 :initial-element #\-))
> > >                 (sep2 (make-string 80 :initial-element #\=)))
> > >     (loop :for rec :in (sort revs #'string< :key #'second) :do
> > >        (format t "~%Commit: ~a~%" (getf rec :date))
> > >        (format t "~{ ~a~%~}" (mapcar #'auto-utf (getf rec
> > :comment)))
> > >        (when *with-files-p*
> > >                 (format t "~a~%" sep)
> > >                 (format t "Files:~%~{ ~a~%~}" (mapcar #'auto-utf
> > (getf rec :files))))
> > >        (format t "~a~%" sep2))))
> > >
> > > The second format statement seems to be somehow problematic and
> > causes problems even if wrapped within IGNORE-ERRORS.
> > >
> > > Sorry I’m no CCL hacker J
> > >
> > > *WITH-FILES-P* is NIL during test. #’AUTO-UTF may be replaced by
> > some dumb function returning strings. (GETF REC :COMMENT) just returns
> > a few strings. Nothing fancy – just this breaking the pipe thing.
> > >
> > > I think, you are right with the streams thing. I tried batch mode
> > which returns one broken pipe error message, which should not appear
> > with :ERROR-HANDLER :QUIT.
> > >
> > > Hope this is helpful. I can provide my (few hundered lines) program
> > if it is helpful.
> > >
> > > Best regards Andreas
> > >
> > > All kernel debugger messages follow (plus backtrace)
> > >
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x183DF7F6> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process Initial(0).
> > > Unrecoverable stack overflow.
> > > ? for help
> > > [4545] Clozure CL kernel debugger:b
> > > (#xF758BEE8) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758BEFC) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758BF2C) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758BF60) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758BF6C) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758BF84) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758C048) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758C070) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758C084) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758C098) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758C0C8) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758C0FC) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758C108) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758C120) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758C1E4) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758C20C) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758C220) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758C234) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758C264) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758C298) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758C2A4) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758C2BC) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758C380) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758C3A8) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758C3BC) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758C3D0) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758C400) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758C434) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758C440) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758C458) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758C51C) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758C544) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758C558) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758C56C) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758C59C) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758C5D0) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758C5DC) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758C5F4) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758C6B8) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758C6E0) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758C6F4) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758C708) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758C738) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758C76C) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758C778) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758C790) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758C854) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758C87C) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758C890) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758C8A4) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758C8D4) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758C908) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758C914) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758C92C) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758C9F0) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758CA18) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758CA2C) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758CA40) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758CA70) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758CAA4) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758CAB0) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758CAC8) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758CB8C) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758CBB4) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758CBC8) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758CBDC) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758CC0C) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758CC40) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758CC4C) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758CC64) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758CD28) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758CD50) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758CD64) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758CD78) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758CDA8) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758CDDC) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758CDE8) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758CE00) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758CEC4) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758CEEC) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758CF00) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758CF14) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758CF44) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758CF78) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758CF84) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758CF9C) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758D060) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758D088) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758D09C) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758D0B0) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758D0E0) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758D114) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758D120) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758D138) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758D1FC) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758D224) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758D238) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758D24C) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758D27C) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758D2B0) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758D2BC) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758D2D4) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758D398) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758D3C0) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758D3D4) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758D3E8) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758D418) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758D44C) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758D458) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758D470) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758D534) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758D55C) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758D570) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758D584) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758D5B4) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758D5E8) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758D5F4) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758D60C) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758D6D0) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758D6F8) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758D70C) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758D720) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758D750) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758D784) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758D790) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758D7A8) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758D86C) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758D894) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758D8A8) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758D8BC) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758D8EC) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758D920) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758D92C) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758D944) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758DA08) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758DA30) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758DA44) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758DA58) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758DA88) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758DABC) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758DAC8) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758DAE0) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758DBA4) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758DBCC) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758DBE0) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758DBF4) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758DC24) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758DC58) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758DC64) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758DC7C) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758DD40) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758DD68) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758DD7C) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758DD90) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758DDC0) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758DDF4) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758DE00) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758DE18) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758DEDC) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758DF04) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758DF18) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758DF2C) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758DF5C) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758DF90) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758DF9C) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758DFB4) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> +
> 1343
> > > (#xF758E078) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758E0A0) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758E0B4) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758E0C8) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758E0F8) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758E12C) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758E138) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758E150) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758E214) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758E23C) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758E250) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758E264) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758E294) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758E2C8) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758E2D4) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758E2EC) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758E3B0) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758E3D8) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758E3EC) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758E400) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758E430) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758E464) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758E470) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758E488) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758E54C) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758E574) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758E588) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758E59C) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758E5CC) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758E600) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758E60C) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758E624) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758E6E8) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758E710) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758E724) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758E738) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758E768) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758E79C) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758E7A8) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758E7C0) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758E884) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758E8AC) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758E8C0) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758E8D4) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758E904) #x1033607D : #<Method-Function STREAM-FORCE-OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758E938) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758E944) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758E95C) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758EA20) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758EA48) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758EA5C) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758EA70) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758EAA0) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758EAD4) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758EAE0) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758EAF8) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758EBBC) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758EBE4) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758EBF8) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758EC0C) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758EC3C) #x1033607D : #<Method-Function STREAM-FORCE-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x10335E76> + 519
> > > (#xF758EC70) #x1012A52D : #<Function FORCE-OUTPUT #x1012A4BE> +
> 111
> > > (#xF758EC7C) #x103534B5 : #<Function %ACQUIRE-SHARED-RESOURCE
> > #x103531A6> + 783
> > > (#xF758EC94) #x104B0B0D : #<Function BREAK-LOOP #x104B05CE> + 1343
> > > (#xF758ED58) #x104B5625 : #<Function BREAK-LOOP-HANDLE-ERROR
> > #x104B50F6> + 1327
> > > (#xF758ED80) #x10157E75 : #<Function %ERROR #x10157D0E> + 359
> > > (#xF758ED94) #x102A7E4D : #<Method-Function STREAM-IO-ERROR
> (STREAM
> > T T) #x102A7DC6> + 135
> > > (#xF758EDA8) #x1033DD25 : #<Function FD-STREAM-FORCE-OUTPUT
> > #x1033D8D6> + 1103
> > > (#xF758EDD8) #x103343E5 : #<Method-Function STREAM-FINISH-
> OUTPUT
> > (BASIC-OUTPUT-STREAM) #x103341DE> + 519
> > > (#xF758EE0C) #x1012A755 : #<Function FINISH-OUTPUT #x1012A716> +
> 63
> > > (#xF758EE1C) #x10426FB5 : #<Function (:INTERNAL FLUSH-STREAM
> > (PROCESS-EXIT-APPLICATION (PROCESS T))) #x10426E66> + 335
> > > (#xF758EE4C) #x104279ED : #<Method-Function
> > PROCESS-EXIT-APPLICATION (PROCESS T) #x10427846> + 423
> > > (#xF758EE74) #x104A1F7D : #<Function (:INTERNAL QUIT) #x104A1DD6>
> +
> > 423
> > > (#xF758EE98) #x10138175 : #<Function APPLY #x101380B6> + 191
> > > (#xF758EEB4) #x10415A15 : #<Function THREAD-HANDLE-INTERRUPTS
> > #x1041578E> + 647
> > > (#xF758EEE8) #x104FBDF5 : #<Function XCMAIN #x104FBB3E> + 695
> > > (#xF758EF18) #x10193215 : #<Function %PASCAL-FUNCTIONS%
> #x101930BE>
> > + 343
> > > (#xF758EF60) #x00000000 : #<Function %NANOSLEEP #x10407ACE> + ??
> > > (#xF758EF90) #x10407D9D : #<Function %NANOSLEEP #x10407ACE> + 719
> > > (#xF758EFD0) #x10425385 : #<Function HOUSEKEEPING-LOOP
> #x104251E6>
> > + 415
> > > [4545] Clozure CL kernel debugger: k fwgz at fwgz14:~/cvsrep$
> > >
> > > Von: Ron Garret [mailto:ron at flownet.com]
> > > Gesendet: Montag, 1. Dezember 2014 19:06
> > > An: Andreas Thiele
> > > Cc: openmcl-devel at clozure.com
> > > Betreff: Re: [Openmcl-devel] Bug when writing to broken pipe?
> > >
> > > This still looks like a CCL bug to me because you specified
> > :error-handler :quit.  My guess is that CCL is trying to write the
> > error message to stdout instead of stderr, so when you pipe stdout and
> > that pipe gets broken, the attempt to write the error message
> > causes another error, which eventually results in a stack overflow.
> > (I presume that you got more than just the four errors you included in
> > your message.)
> > >
> > > I’d file a ticket.
> > >
> > > On Dec 1, 2014, at 4:34 AM, Andreas Thiele <andreas at atp-media.de>
> > wrote:
> > >
> > >
> > > Sorry, I found a fix. Just wrap the code within ignore-errors (or
> > similar).
> > >
> > > Regards
> > > Andreas
> > >
> > >
> > > Von: Openmcl-devel [mailto:openmcl-devel-bounces at clozure.com] Im
> > Auftrag von Andreas Thiele
> > > Gesendet: Montag, 1. Dezember 2014 12:42
> > > An: openmcl-devel at clozure.com
> > > Betreff: [Openmcl-devel] Bug when writing to broken pipe?
> > >
> > > Dear All,
> > >
> > > I came across a tiny problem which I would consider a bug: I write
> > a lengthy output to *standard-output* on a Debian Linux. When I pipe
> > the output to another linux program and the pipe get broken, closure
> > lisp crashes. Is this behavior correct? If so, how can I avoid the
> > crash.
> > >
> > > In my case I pipe to linux less and terminate less by pressed
> > letter q very soon.
> > >
> > > My test code is:
> > >
> > > (defun test ()
> > >   (loop :for i :from 1 :to 10000 :do
> > >      (format t "This is a test line to produce a lengthy
> > output.~%")))
> > >
> > > (ccl:save-application "test"
> > >                                      :toplevel-function #'test
> > >                                      :error-handler :quit
> > >                                      :prepend-kernel t)
> > >
> > > Tested with ccl-1.9 32 and 64 and ccl-1.10 32-bit.
> > >
> > > fwgz at fwgz14:~/cvsrep-bug$test | less
> > >
> > > and pressing ‘q’ very soon leads to
> > >
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process toplevel(2).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x18353C96> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process toplevel(2).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x18353C96> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process toplevel(2).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x18353C96> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process toplevel(2).
> > > > Error: on #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (PIPE/1)
> > #x18353C96> :
> > > >        Broken pipe during write
> > > > While executing: #<CCL::STANDARD-KERNEL-METHOD
> > CCL::STREAM-IO-ERROR (STREAM T T)>, in process toplevel(2).
> > > Unrecoverable stack overflow.
> > > ? for help
> > > [5134] Clozure CL kernel debugger:
> > >
> > > Any hints very welcome.
> > >
> > > Best Regards
> > > Andreas Thiele
> > >
> > >
> > >
> > > _______________________________________________
> > > Openmcl-devel mailing list
> > > Openmcl-devel at clozure.com
> > > https://lists.clozure.com/mailman/listinfo/openmcl-devel
> >
> >
> 
> ------quoted attachment------
> > _______________________________________________
> > Openmcl-devel mailing list
> > Openmcl-devel at clozure.com
> > https://lists.clozure.com/mailman/listinfo/openmcl-devel
> >





More information about the Openmcl-devel mailing list