From: Robert M. <bob...@bo...> - 2004-04-19 10:49:44
|
Hi all. I've got a multi-threaded app running under SBCL and somewhere in it it calls (read queue nil 0). It runs quite nicely except eventually it spits this: "unhandled condition (of type TYPE-ERROR): The value NIL is not of type NUMBER.". The value it should be reading from the file is a number... and I can see no reason it would be "NIL" when it's trying to read it here. The thread immediately after the crashing thread picks up the ball and successfully reads the number without a complaint and all read/write accesses to the file are mutex'd. Any suggestions on what I can try or fixes I can perform would be appreciated. The SBCL version I'm running is 0.8.8 with multithreaded support running on a single x86 CPU on GNU/Linux. Here's the debugging output SBCL gives (seems the error's happening in good old foreign function call land which I have no idea how to debug, and I can't find any obvious FF calls in the SBCL source to figure out what's going on): unhandled condition (of type TYPE-ERROR): The value NIL is not of type NUMBER. 0: ("hairy arg processor for top level local call SB!DEBUG:BACKTRACE" 128 #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDERR* {504F771}>) 1: (SB-DEBUG::DEBUGGER-DISABLED-HOOK 2 #<TYPE-ERROR {92F9DE9}> #<unavailable argument>)[:EXTERNAL] 2: (INVOKE-DEBUGGER 1 #<TYPE-ERROR {92F9DE9}>)[:EXTERNAL] 3: (ERROR 5 TYPE-ERROR)[:EXTERNAL] 4: (SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER 4 #<unavailable argument> #.(SB-SYS:INT-SAP #X41085D40) #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X41085A10 :TYPE (* (STRUCT SB-VM::OS-CONTEXT-T-STRUCT))> (398 14))[:EXTERNAL] 5: (SB-KERNEL:INTERNAL-ERROR 2 #.(SB-SYS:INT-SAP #X41085A10) #<unavailable argument>)[:EXTERNAL] 6: ("foreign function call land: ra=#x80579F1") 7: ("foreign function call land: ra=#x805787D") 8: ("foreign function call land: ra=#x805236B") 9: ("foreign function call land: ra=#x80574EB") 10: (SB-IMPL::MAKE-INTEGER 0)[:EXTERNAL] 11: ("hairy arg processor for top level local call READ-PRESERVING-WHITESPACE" #<FILE-STREAM for "file \"/home/pisces/psmsd/spool/.queue\"" {92F8929}> NIL 0 T) 12: ("hairy arg processor for top level local call READ-PRESERVING-WHITESPACE" #<FILE-STREAM for "file \"/home/pisces/psmsd/spool/.queue\"" {92F8929}> NIL 0 NIL) 13: ("hairy arg processor for top level local call READ" #<FILE-STREAM for "file \"/home/pisces/psmsd/spool/.queue\"" {92F8929}> NIL 0 NIL) 14: (PSMSD::DEQUEUE-TICKET) 15: ("hairy arg processor for PSMSD::DEQUEUE-MESSAGE" #<unavailable argument>) 16: (PSMSD::SENDER) 17: ("XEP for SENDER" 0)[:EXTERNAL] 18: ("#'(LAMBDA NIL (LET # # ...))") 19: ("foreign function call land: ra=#x80579F1") 20: ("foreign function call land: ra=#x805780D") -- Regards, Robert Marlow |