So, using SBCL and :fd-handler, I got into a situation where running hunchentoot from slime and loading a page triggered an error that gave me a backtrace. Then things got weird as I couldn't view the source of, say, frame 12 without getting an error like: "The variable SWANK-BACKEND::*SLDB-STACK-TOP* is unbound."
I forgot I was using fd-handler, but tcr was kind enough to point out that that's probably part of the problem.
Not sure what's going on here, but I figured I'd report it. Backtraces below.
Thanks,
Cyrus
The path
#P"/Users/sly/projects/hunchentoot-launcher/log/hunch..."
does not exist.
[Condition of type SB-INT:SIMPLE-FILE-ERROR]
Restarts:
0: [TERMINATE-THREAD] Terminate this thread (#<THREAD "Hunchentoot worker (client: 127.0.0.1:61003)" RUNNING {1003A55761}>)
Backtrace:
0: (OPEN #P"/Users/sly/projects/hunchentoot-launcher/log/hunchentoot-message.log")[:EXTERNAL]
1: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300))
3: (SB-THREAD::CALL-WITH-MUTEX ..)
4: (HUNCHENTOOT::LOG-MESSAGE-TO-FILE :ERROR "Error while processing connection: ~A")[:EXTERNAL]
5: ((FLET #:LAMBDA103) #<SB-INT:SIMPLE-FILE-ERROR "~@<The path ~2I~_~S ~I~_does not exist.~:>" {1003B98FD1}>)
6: (SIGNAL #<SB-INT:SIMPLE-FILE-ERROR "~@<The path ~2I~_~S ~I~_does not exist.~:>" {1003B98FD1}>)[:EXTERNAL]
7: (ERROR SB-INT:SIMPLE-FILE-ERROR)[:EXTERNAL]
8: (OPEN #P"/Users/sly/projects/hunchentoot-launcher/log/hunchentoot-access.log")[:EXTERNAL]
9: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
10: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300))
11: (SB-THREAD::CALL-WITH-MUTEX ..)
12: (HUNCHENTOOT::LOG-ACCESS-TO-FILE)[:EXTERNAL]
13: (HUNCHENTOOT::START-OUTPUT)[:EXTERNAL]
14: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-REQUEST (T)) #<unavailable argument> #<unavailable argument> #<HUNCHENTOOT:REQUEST {1003679FB1}>)
15: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION (HUNCHENTOOT:ACCEPTOR T)) ..)
16: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION :AROUND (HUNCHENTOOT:ACCEPTOR T)) ..)
17: ((LAMBDA ()))
18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK401]406))
19: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
--more--
then when I try to either expand the stack trace or visit a source file from the back trace I get the following subsequent error:
The variable SWANK-BACKEND::*SLDB-STACK-TOP* is unbound.
[Condition of type UNBOUND-VARIABLE]
Restarts:
0: [*ABORT] Return to SLIME's top level.
1: [ABORT] Exit debugger, returning to top level.
Backtrace:
0: (SWANK-BACKEND::NTH-FRAME 20)
1: ((FLET SWANK-BACKEND:COMPUTE-BACKTRACE) 20 60)
2: (SWANK:BACKTRACE 20 60)
3: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:BACKTRACE 20 60) #<NULL-LEXENV>)
4: (SWANK::EVAL-FOR-EMACS (SWANK:BACKTRACE 20 60) "COMMON-LISP-USER" 10)
5: (SWANK::PROCESS-REQUESTS T)
6: ((LAMBDA ()))
7: ((LAMBDA ()))
8: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {1002AEA0F9}>)
9: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {1002AEA0F9}>)
10: (SWANK::CALL-WITH-BINDINGS ..)
11: (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {1003B761E1}> T)
12: ((LABELS SWANK-BACKEND::RUN) 7)
13: (SB-IMPL::SUB-SUB-SERVE-EVENT NIL NIL)
14: (SB-IMPL::SUB-SERVE-EVENT NIL NIL NIL)
15: (SB-SYS:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL)
16: (SB-IMPL::REFILL-INPUT-BUFFER #<SB-SYS:FD-STREAM for "standard input" {10037292C1}>)
17: (SB-IMPL::INPUT-CHAR/ASCII #<SB-SYS:FD-STREAM for "standard input" {10037292C1}> NIL #:EOF-OBJECT)
18: ((LAMBDA (&REST REST)) #<SB-SYS:FD-STREAM for "standard input" {10037292C1}> NIL #:EOF-OBJECT)
19: ((LAMBDA (&REST REST)) #<SB-SYS:FD-STREAM for "standard input" {10037292C1}> NIL #:EOF-OBJECT)[:OPTIONAL]
--more--