Esteemed hunchentoot developers,
So, while trying to track down an unrelated issue where my handlers aren't getting called anymore, I came across the following issue where failure to open the message log file results in an error, which, in turn, attempts to open the message log file. The problem in this case was that the permissions were bogus for the directory I was trying to open. But, still, we should probably have a nicer error message than "recursive lock attempt" here.
thanks,
Cyrus
Recursive lock attempt #S(SB-THREAD:MUTEX :NAME "global-message-log-lock" :%OWNER #<SB-THREAD:THREAD "Hunchentoot worker (client: 192.168.0.101:50690)" RUNNING {100427B6A1}> :STATE 1). [Condition of type SIMPLE-ERROR]
Restarts: 0: [TERMINATE-THREAD] Terminate this thread (#<THREAD "Hunchentoot worker (client: 192.168.0.101:50690)" RUNNING {100427B6A1}>)
Backtrace: 0: (SB-THREAD:GET-MUTEX #<unavailable argument> #<unavailable argument> #<unavailable argument> #<unavailable argument>) 1: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) 2: (HUNCHENTOOT::LOG-MESSAGE-TO-FILE :ERROR "Error while processing connection: ~A")[:EXTERNAL] 3: ((FLET #:LAMBDA103) #<SIMPLE-ERROR "Recursive lock attempt ~S." {1003715361}>) 4: (SIGNAL #<SIMPLE-ERROR "Recursive lock attempt ~S." {1003715361}>)[:EXTERNAL] 5: (ERROR "Recursive lock attempt ~S.")[:EXTERNAL] 6: (SB-THREAD:GET-MUTEX #<unavailable argument> #<unavailable argument> #<unavailable argument> #<unavailable argument>) 7: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) 8: (SB-THREAD::CALL-WITH-MUTEX ..) 9: (HUNCHENTOOT::LOG-MESSAGE-TO-FILE :ERROR "~A~:[~*~;~%~:*~A~]")[:EXTERNAL] 10: ((FLET #:LAMBDA250) #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {10036AD531}>) 11: (SIGNAL #<SB-INT:SIMPLE-FILE-ERROR "~@<~?: ~2I~_~A~:>" {10036AD531}>)[:EXTERNAL] 12: (ERROR SB-INT:SIMPLE-FILE-ERROR)[:EXTERNAL] 13: (SB-IMPL::SIMPLE-FILE-PERROR "error opening ~S" #P"/usr/home/sly/projects/priv.cyrusharmon.org/hunchentoot-launcher/log/hunchentoot-message.log" 13) 14: ((LABELS SB-IMPL::VANILLA-OPEN-ERROR)) 15: (OPEN #P"/usr/home/sly/projects/priv.cyrusharmon.org/hunchentoot-launcher/log/hunchentoot-message.log")[:EXTERNAL] 16: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 17: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) 18: (SB-THREAD::CALL-WITH-MUTEX ..) 19: (HUNCHENTOOT::LOG-MESSAGE-TO-FILE :INFO "Default handler called for script ~A")[:EXTERNAL] 20: (HUNCHENTOOT::DEFAULT-HANDLER) 21: ((SB-PCL::FAST-METHOD HUNCHENTOOT:HANDLE-REQUEST (HUNCHENTOOT:ACCEPTOR HUNCHENTOOT:REQUEST)) ..) 22: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-REQUEST (T)) #<unavailable argument> #<unavailable argument> #<HUNCHENTOOT:REQUEST {1003587951}>) 23: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION (HUNCHENTOOT:ACCEPTOR T)) ..) 24: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION :AROUND (HUNCHENTOOT:ACCEPTOR T)) ..) 25: ((LAMBDA ())) 26: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK369]374))