On 05 Mar 2005 22:40:34 +0100, Luke Gorrie luke@synap.se wrote:
Have you tried 'kill -INT <pid>' on Lisp when it starts going nuts? Would be interesting to see the backtrace before heap explosion occurs.
Here it is. I've expanded the interesting frames further down below. Does that help?
Interrupted at #x10044616. [Condition of type SIMPLE-CONDITION]
Restarts: 0: [CONTINUE] Return from BREAK. 1: [ABORT] Abort handling SLIME request. 2: [ABORT] Return to Top-Level.
Backtrace: 0: (UNIX::SIGINT-HANDLER #<#1=unused-arg> #<#1#> #.(SYSTEM:INT-SAP #x3FFFB728)) 1: (UNIX::SIGINT-HANDLER 3 #<#1=unused-arg> #<#1#> #.(SYSTEM:INT-SAP #x3FFFB728))[:EXTERNAL] 2: ("call_into_lisp+#x8C [#x805495C] /usr/bin/lisp") 3: ("funcall3+#x32 [#x8054768] /usr/bin/lisp") 4: ("interrupt_handle_now+#xFB [#x8050070] /usr/bin/lisp") 5: ("interrupt_handle_pending+#xB9 [#x804FF6E] /usr/bin/lisp") 6: ("sigtrap_handler+#xE6 [#x8054566] /usr/bin/lisp") 7: ((FLET #:G24 LISP::SUB-GC))[:CLEANUP] 8: (LISP::SUB-GC :VERBOSE-P NIL :FORCE-P NIL ...) 9: (LISP::MAYBE-GC NIL) 10: ("call_into_lisp+#x8C [#x805495C] /usr/bin/lisp") 11: ("funcall0+#x27 [#x80546DE] /usr/bin/lisp") 12: ("alloc+#xDF [#x805D9E6] /usr/bin/lisp") 13: ("alloc_overflow_edx+#xE [#x8054B62] /usr/bin/lisp") 14: (LISP::READ-MAYBE-NOTHING #<String-Input Stream> #[) 15: (LISP::READ-LIST #<String-Input Stream> #<unused-arg>) 16: (LISP::READ-MAYBE-NOTHING #<String-Input Stream> #() 17: (LISP::READ-LIST #<String-Input Stream> #<unused-arg>) 18: (LISP::READ-MAYBE-NOTHING #<String-Input Stream> #() 19: (LISP::READ-LIST #<String-Input Stream> #<unused-arg>) 20: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<String-Input Stream> T NIL T) 21: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<String-Input Stream> T NIL NIL) 22: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL 4 #<String-Input Stream> T NIL ...)[:EXTERNAL] 23: (LISP::READ-INTERNAL #<String-Input Stream> T NIL NIL) 24: (READ #<String-Input Stream> T NIL NIL) 25: (SWANK-BACKEND::READ-SOURCE-FORM 4 #<String-Input Stream>) 26: (SWANK-BACKEND::FORM-NUMBER-STREAM-POSITION 4 0 #<String-Input Stream>) 27: (SWANK-BACKEND::CODE-LOCATION-STREAM-POSITION #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> #<String-Input Stream>) 28: (SWANK-BACKEND::LOCATION-IN-FILE #1="/tmp/foo/foo1.lisp" #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> #S(C::DEBUG-SOURCE :FROM :FILE :NAME #1# :COMMENT NIL :CREATED 3319048151 :COMPILED 3319052075 ...)) 29: (SWANK-BACKEND::CODE-LOCATION-SOURCE-LOCATION #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS>) 30: (SWANK-BACKEND::FUNCTION-DEFINITIONS GET-PROJECTS-FOR-COSTS) 31: ((METHOD SWANK-BACKEND:FIND-DEFINITIONS NIL (T)) #<#1=unused-arg> #<#1#> GET-PROJECTS-FOR-COSTS) 32: (SWANK:FIND-DEFINITIONS-FOR-EMACS "get-projects-for-costs") 33: ("DEFUN EVAL-FOR-EMACS") 34: ((METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK NIL (T T)) #<#1=unused-arg> #<#1#> #<Function SWANK:SWANK-DEBUGGER-HOOK {588825D1}> #<Closure Over Function "DEFUN EVAL-FOR-EMACS" {5892C8D1}>) 35: ("DEFUN HANDLE-REQUEST") 36: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {58A52B65}> #<Function "DEFUN HANDLE-REQUEST" {58762091}>) 37: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {58A52B65}>) 38: (SWANK::PROCESS-AVAILABLE-INPUT #<Stream for descriptor 6> #<Closure Over Function "DEFUN INSTALL-SIGIO-HANDLER" {5892BF19}>) 39: ((FLET SWANK::HANDLER SWANK::INSTALL-SIGIO-HANDLER)) 40: (SWANK-BACKEND::SIGIO-HANDLER #<#1=unused-arg> #<#1#> #<#1#>) 41: ("call_into_lisp+#x8C [#x805495C] /usr/bin/lisp") 42: ("funcall3+#x32 [#x8054768] /usr/bin/lisp") 43: ("interrupt_handle_now+#xFB [#x8050070] /usr/bin/lisp") 44: ("NIL+#x80504B7 [#x80504B7] /usr/bin/lisp") 45: ("NIL+#x4006D678 [#x4006D678] /lib/libc.so.6") 46: (SYSTEM:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL) 47: (LISP::DO-INPUT #<Stream for Standard Input>) 48: (LISP::INPUT-CHARACTER #<Stream for Standard Input> NIL (LISP::*EOF*)) 49: (LISP::SYNONYM-IN #<Synonym Stream to SYSTEM:*STDIN*> NIL (LISP::*EOF*)) 50: (LISP::TWO-WAY-IN #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (LISP::*EOF*)) 51: (LISP::SYNONYM-IN #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (LISP::*EOF*)) 52: (READ-CHAR #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (LISP::*EOF*) NIL) 53: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) T) 54: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) NIL) 55: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL 4 #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) ...)[:EXTERNAL] 56: (LISP::READ-INTERNAL #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) NIL) 57: (READ #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) NIL) 58: (LISP::%TOP-LEVEL) 59: ((LABELS LISP::RESTART-LISP EXTENSIONS:SAVE-LISP))
14: (LISP::READ-MAYBE-NOTHING #<String-Input Stream> #[) Locals: ARRAY = #:INVALID CHAR = #[ LISP::RETVAL = #:INVALID STREAM = #<String-Input Stream> [No catch-tags]
15: (LISP::READ-LIST #<String-Input Stream> #<unused-arg>) Locals: ARRAY = #:INVALID ARRAY#1 = #:INVALID LISP::FIRSTCHAR = #:INVALID LISP::LISTOBJ = #:INVALID LISP::LISTTAIL = (NIL) LISP::NEXTCHAR = #:INVALID LISP::RT = #:INVALID STREAM = #<String-Input Stream> LISP::THELIST = (NIL NIL (QUOTE NIL) NIL NIL NIL NIL NIL NIL NIL ...) [No catch-tags]
16: (LISP::READ-MAYBE-NOTHING #<String-Input Stream> #() Locals: ARRAY = #:INVALID CHAR = #( LISP::RETVAL = #:INVALID STREAM = #<String-Input Stream> [No catch-tags]
17: (LISP::READ-LIST #<String-Input Stream> #<unused-arg>) Locals: ARRAY = #:INVALID ARRAY#1 = #:INVALID LISP::FIRSTCHAR = #:INVALID LISP::LISTOBJ = #:INVALID LISP::LISTTAIL = (NIL) LISP::NEXTCHAR = #:INVALID LISP::RT = #:INVALID STREAM = #<String-Input Stream> LISP::THELIST = (NIL NIL) [No catch-tags]
18: (LISP::READ-MAYBE-NOTHING #<String-Input Stream> #() Locals: ARRAY = #:INVALID CHAR = #( LISP::RETVAL = #:INVALID STREAM = #<String-Input Stream> [No catch-tags]
19: (LISP::READ-LIST #<String-Input Stream> #<unused-arg>) Locals: ARRAY = #:INVALID ARRAY#1 = #:INVALID LISP::FIRSTCHAR = #:INVALID LISP::LISTOBJ = #:INVALID LISP::LISTTAIL = ((NIL)) LISP::NEXTCHAR = #:INVALID LISP::RT = #:INVALID STREAM = #<String-Input Stream> LISP::THELIST = (NIL NIL NIL (NIL)) [No catch-tags]
20: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<String-Input Stream> T NIL T) Locals: ARRAY = #:INVALID ARRAY#1 = #:INVALID CHAR = #:INVALID LISP::EOF-ERRORP = T LISP::EOF-VALUE = NIL LISP::RECURSIVEP = T LISP::RESULT = #:INVALID LISP::RT = #:INVALID STREAM = #<String-Input Stream> [No catch-tags]
21: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<String-Input Stream> T NIL NIL) Locals: ARRAY = #:INVALID ARRAY#1 = #:INVALID CHAR = #:INVALID LISP::EOF-ERRORP = T LISP::EOF-VALUE = NIL LISP::RECURSIVEP = NIL LISP::RESULT = #:INVALID LISP::RT = #:INVALID STREAM = #<String-Input Stream> [No catch-tags]
22: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL 4 #<String-Input Stream> T NIL ...)[:EXTERNAL] Locals: #:G2 = 4 #:G3 = #<String-Input Stream> #:G4 = T #:G5 = NIL #:G6 = NIL [No catch-tags]
23: (LISP::READ-INTERNAL #<String-Input Stream> T NIL NIL) Locals: ARRAY = #:INVALID LISP::EOF-ERRORP = T LISP::EOF-VALUE = NIL LISP::RECURSIVEP = NIL LISP::RT = #:INVALID STREAM = #<String-Input Stream> LISP::WHITECHAR = #:INVALID [No catch-tags]
24: (READ #<String-Input Stream> T NIL NIL) Locals: LISP::EOF-ERRORP = T LISP::EOF-VALUE = NIL LISP::RECURSIVEP = NIL STREAM = #<String-Input Stream> [No catch-tags]
25: (SWANK-BACKEND::READ-SOURCE-FORM 4 #<String-Input Stream>) Locals: SWANK-BACKEND::I = 3 SWANK-BACKEND::N = 4 STREAM = #<String-Input Stream> [No catch-tags]
26: (SWANK-BACKEND::FORM-NUMBER-STREAM-POSITION 4 0 #<String-Input Stream>) Locals: ARRAY = #:INVALID SWANK-BACKEND::FORM-NUMBER = 0 SWANK-BACKEND::PATH-TABLE = #:INVALID SWANK-BACKEND::POSITION-MAP = #:INVALID STREAM = #<String-Input Stream> SWANK-BACKEND::TLF = #:INVALID SWANK-BACKEND::TLF-NUMBER = 4 [No catch-tags]
27: (SWANK-BACKEND::CODE-LOCATION-STREAM-POSITION #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> #<String-Input Stream>) Locals: SWANK-BACKEND::CODE-LOCATION = #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> SWANK-BACKEND:LOCATION = #:INVALID SWANK-BACKEND::POS = #:INVALID STREAM = #<String-Input Stream> [No catch-tags]
28: (SWANK-BACKEND::LOCATION-IN-FILE #1="/tmp/foo/foo1.lisp" #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> #S(C::DEBUG-SOURCE :FROM :FILE :NAME #1# :COMMENT NIL :CREATED 3319048151 :COMPILED 3319052075 ...)) Locals: SWANK-BACKEND::CODE-LOCATION = #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> SWANK-BACKEND::DEBUG-SOURCE = #S(C::DEBUG-SOURCE :FROM :FILE :NAME "/tmp/foo/foo1.lisp" :COMMENT NIL :CREATED 3319048151 :COMPILED 3319052075 :SOURCE-ROOT 0 :START-POSITIONS #(0 88 224 341 386) :INFO NIL) SWANK-BACKEND::FILENAME = "/tmp/foo/foo1.lisp" SWANK-BACKEND::S = #<String-Input Stream> [No catch-tags]
29: (SWANK-BACKEND::CODE-LOCATION-SOURCE-LOCATION #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS>) Locals: SWANK-BACKEND::C = #:INVALID SWANK-BACKEND::CODE-LOCATION = #<Compiled-Code-Location GET-PROJECTS-FOR-COSTS> [No catch-tags]
30: (SWANK-BACKEND::FUNCTION-DEFINITIONS GET-PROJECTS-FOR-COSTS) Locals: FUNCTION = #:INVALID SWANK-BACKEND::NAME = GET-PROJECTS-FOR-COSTS [No catch-tags]
31: ((METHOD SWANK-BACKEND:FIND-DEFINITIONS NIL (T)) #<#1=unused-arg> #<#1#> GET-PROJECTS-FOR-COSTS) Locals: SWANK-BACKEND::NAME = GET-PROJECTS-FOR-COSTS [No catch-tags]
32: (SWANK:FIND-DEFINITIONS-FOR-EMACS "get-projects-for-costs") Locals: SWANK::DSPEC = #:INVALID ERROR = #:INVALID SWANK::LOC = #:INVALID SWANK::NAME = "get-projects-for-costs" SWANK::SEXP = #:INVALID [No catch-tags]