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

Ron Garret ron at flownet.com
Wed Dec 3 13:55:20 PST 2014


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:

[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