[Openmcl-devel] Bug when writing to broken pipe?
Gary Byers
gb at clozure.com
Thu Dec 4 13:54:56 PST 2014
On 12/03/2014 02:55:20 PM, Ron Garret wrote:
>
> On Dec 3, 2014, at 12:35 PM, Gary Byers <gb at clozure.com> wrote:
>
> > i haven't looked at this or even thought about it much yet, but my
> first reaction - which could be misguided - is to suggest running the
> saved image with the --batch option. That should cause any unhandled
> error to abruptly terminate the application and may (I don't remember
> the details) cause *TERMINAL-IO* to be initialized differently, and I
> expect that the death spiral you're getting has to do with the fact
> that the initial thread is trying to FORCE-OUTPUT on the output side
> of *TERMINAL-IO*, which is ordinarily the same stream as
> *STANDARD-OUTPUT* …
>
> It has nothing to do with any of that. It’s simply a bug: the -b
> flag doesn’t work as advertised when entering a break loop:
I still haven't looked at this at all carefully, but your example sure
looked to me like the -b option was working as advertised (though the
output was truncated at the end and the advertisement should be updated
to note that an attempt is made to print a backtrace before exiting,
and the last #\[ in the output you sent -might- be something other than
the first character of your shell prompt, but I strongly suspect that
that's what it is.
I should probably get in the habit of reading messages before
responding to them - whether the above paragraph is true or not, I
don't know enough about the problem to know whether or not it' relevant,
>
> [ron at mighty:~]➔ ~/devel/ccl/active/dx86cl64 -b -e '(error "foo")'
> > Error of type SIMPLE-ERROR: foo
> > While executing: CCL::CHEAP-EVAL, in process listener(1).
> (20E19A58) : 0 (PRINT-CALL-HISTORY :CONTEXT NIL :PROCESS NIL :ORIGIN
> NIL :DETAILED-P T :COUNT 1152921504606846975 :START-FRAME-NUMBER 0
> :STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x30200045397D>
> :PRINT-LEVEL 2 :PRINT-LENGTH 5 :SHOW-INTERNAL-FRAMES NIL :FORMAT
> :TRADITIONAL) 845
> (&KEY :CONTEXT :PROCESS :ORIGIN :DETAILED-P :COUNT
> :START-FRAME-NUMBER :STREAM :PRINT-LEVEL :PRINT-LENGTH
> :SHOW-INTERNAL-FRAMES :FORMAT)
> CCL::CONTEXT: NIL
> PROCESS: NIL
> CCL::ORIGIN: NIL
> CCL::DETAILED-P: T
> COUNT: 1152921504606846975
> CCL::START-FRAME-NUMBER: 0
> STREAM: #<SYNONYM-STREAM to *TERMINAL-IO* #x30200045397D>
> CCL::PRINT-LEVEL: 2
> CCL::PRINT-LENGTH: 5
> CCL::SHOW-INTERNAL-FRAMES: NIL
> FORMAT: :TRADITIONAL
>
> CCL::FRAME-NUMBER: 0
> *BACKTRACE-PRINT-LEVEL*: 2
> *BACKTRACE-PRINT-LENGTH*: 5
> *BACKTRACE-FORMAT*: :TRADITIONAL
> *STANDARD-OUTPUT*: #<SYNONYM-STREAM to *TERMINAL-IO* #x30200045397D>
> *PRINT-CIRCLE*: NIL
>
> (20E19BC0) : 1 (ABNORMAL-APPLICATION-EXIT) 245
> NIL
>
> #:G153982: (ERROR)
> CCL::%HANDLERS%: ((ERROR) (PROCESS-RESET))
>
> (20E19BF0) : 2 (BREAK-LOOP-HANDLE-ERROR #<SIMPLE-ERROR
> #x30200091001D> 68957073) 1589
> (CONDITION *TOP-ERROR-FRAME*)
> CONDITION: #<SIMPLE-ERROR #x30200091001D>
> *TOP-ERROR-FRAME*: 68957073
>
> CCL::BOGUS-GLOBALS: NIL
> CCL::NEWVALS: NIL
> CCL::OLDVALS: NIL
>
> (20E19C60) : 3 (%ERROR #<SIMPLE-ERROR #x30200091001D> NIL 68957073)
> 333
> (CONDITION CCL::ARGS CCL::ERROR-POINTER)
> CONDITION: #<SIMPLE-ERROR #x30200091001D>
> CCL::ARGS: NIL
> CCL::ERROR-POINTER: 68957073
>
>
>
> (20E19C88) : 4 (CALL-CHECK-REGS ERROR "foo") 221
> (CCL::FN &REST CCL::ARGS)
> CCL::FN: ERROR
> CCL::ARGS: ("foo")
>
> CCL::OLD-REGS: (("home:ccl-init" "home:\\.ccl-init") "(error
> \"foo\")" (#) 919906)
>
> (20E19CC0) : 5 (CHEAP-EVAL (ERROR "foo")) 101
> (CCL::FORM)
> CCL::FORM: (ERROR "foo")
>
> CCL::*NX-SOURCE-NOTE-MAP*: NIL
>
> (20E19CF8) : 6 (FUNCALL #'#<(:INTERNAL CCL::EVAL-STRING
> CCL::STARTUP-CCL)> "(error \"foo\")") 485
> (CCL::S)
> CCL::S: "(error \"foo\")"
>
> #:CONTINUE: #<RESTART CONTINUE #x20F3C46D>
> #:G153564: (#<RESTART CONTINUE #x20F3C46D>)
> CCL::%RESTARTS%: ((#<# # #x20F3C46D>) (#<# # #x20F3C58D>) (#<# #
> #x20F3C7DD> #<# # #x20F3C82D>))
>
> (20E19D40) : 7 (STARTUP-CCL ("home:ccl-init" "home:\\.ccl-init"))
> 1541
> (&OPTIONAL CCL::INIT-FILE)
> CCL::INIT-FILE: ("home:ccl-init" "home:\\.ccl-init")
>
> #:ABORT: #<RESTART ABORT #x20F3C58D>
> #:G153552: (#<RESTART ABORT #x20F3C58D>)
> CCL::%RESTARTS%: ((#<# # #x20F3C58D>) (#<# # #x20F3C7DD> #<# #
> #x20F3C82D>))
> #:G153557: ((:EVAL . "(error \"foo\")"))
> CCL::P: (:EVAL . "(error \"foo\")")
> CCL::PARAM: "(error \"foo\")"
> #:G153560: :EVAL
>
> (20E19DA8) : 8 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION
> (CCL::LISP-DEVELOPMENT-SYSTEM T)))>) 61
> NIL
>
> CCL::F: CCL::LISTENER-FUNCTION
> CCL::INIT-FILE: ("home:ccl-init" "home:\\.ccl-init")
>
> (20E19DC8) : 9 (FUNCALL #'#<(:INTERNAL
> CCL::MAKE-MCL-LISTENER-PROCESS)>) 661
> NIL
>
> *TERMINAL-IO*: #<ECHOING-TWO-WAY-STREAM input
> #<BASIC-CHARACTER-INPUT-STREAM UTF-8 (TTY/4) #x30200045448D>, output
> #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (TTY/4) #x3020004541DD>
> #x30200045D9ED>
> CCL::CLOSE-STREAMS: NIL
> CCL::CLEANUP-FUNCTION: #<COMPILED-LEXICAL-CLOSURE (:INTERNAL #)
> #x302000452DAF>
> CCL::INITIAL-FUNCTION: #<COMPILED-LEXICAL-CLOSURE (:INTERNAL #)
> #x302000452D5F>
> CCL::AUTO-FLUSH: T
> OUTPUT-STREAM: #<BASIC-CHARACTER-OUTPUT-STREAM UTF-8 (TTY/4)
> #x3020004541DD>
> INPUT-STREAM: #<BASIC-CHARACTER-INPUT-STREAM UTF-8 (TTY/4)
> #x30200045448D>
> CCL::ECHOING: T
>
> (20E19E60) : 10 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1)
> [Active] #x3020004528AD> (#<COMPILED-LEXICAL-CLOSURE #
> #x3020004523DF>)) 669
> (PROCESS CCL::INITIAL-FORM)
> PROCESS: #<TTY-LISTENER listener(1) [Active] #x3020004528AD>
> CCL::INITIAL-FORM: (#<COMPILED-LEXICAL-CLOSURE # #x3020004523DF>)
>
> CCL::EXITED: NIL
> #:G155874: (PROCESS-RESET)
> CCL::%HANDLERS%: ((PROCESS-RESET))
> #:ABORT: #<RESTART ABORT #x20F3C82D>
> #:ABORT-BREAK: #<RESTART ABORT-BREAK #x20F3C7DD>
> #:G155875: (#<RESTART ABORT-BREAK #x20F3C7DD> #<RESTART ABORT
> #x20F3C82D>)
> CCL::%RESTARTS%: ((#<# # #x20F3C7DD> #<# # #x20F3C82D>))
>
> (20E19EF0) : 11 (FUNCALL #'#<(:INTERNAL
> (CCL::%PROCESS-PRESET-INTERNAL (PROCESS)))> #<TTY-LISTENER
> listener(1) [Active] #x3020004528AD> (#<COMPILED-LEXICAL-CLOSURE #
> #x3020004523DF>)) 573
> (PROCESS CCL::INITIAL-FORM)
> PROCESS: #<TTY-LISTENER listener(1) [Active] #x3020004528AD>
> CCL::INITIAL-FORM: (#<COMPILED-LEXICAL-CLOSURE # #x3020004523DF>)
>
> *CURRENT-PROCESS*: #<TTY-LISTENER listener(1) [Active]
> #x3020004528AD>
> #:G155860: (*PRINT-PPRINT-DISPATCH* CCL::*FREE-XPS*
> CCL::*FREE-CIRCULARITY-HASH-TABLES* CCL::*LOGICAL-BLOCK-XP*
> CCL::*FORMAT-TOP-LEVEL* ...)
> #:G155861: (#<PPRINT-DISPATCH-TABLE #x30200045E58D> NIL NIL NIL NIL
> ...)
> CCL::*INTERRUPT-LEVEL*: 0
> #:G155862: ("Active")
> #:G155863: "Reset"
>
> (20E19F98) : 12 (FUNCALL #'#<(:INTERNAL
> CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 277
> NIL
>
> CCL::*CURRENT-LISP-THREAD*: #<LISP-THREAD listener [tcr @ #x704B10]
> #x3020004524BD>
> CCL::INITIAL-FUNCTION: (#<Compiled-function # (Non-Global)
> #x3000004A4FBF> #<TTY-LISTENER listener(1) [Active] #x3020004528AD>
> (#))
> CCL::TCR: 919906
> CCL::THREAD: #<LISP-THREAD listener [tcr @ #x704B10] #x3020004524BD>
>
> Version 1.11-dev-r16306M-trunk (DarwinX8664)
> [
>
>
More information about the Openmcl-devel
mailing list