[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