From: Slobodan M. <slo...@gm...> - 2011-02-26 19:16:03
|
Hi! I'm using x86_64 GNU/Linux, sbcl 1.0.46.13 and latest weblocks-dev. Week ago, I've updated sbcl from 1.0.45 to latest, and weblocks-dev to latest (among other libs that weblocks requires) using clbuild. The result is a bit strange. Both my app and weblocks-demo (demo weblocks app) compile with no issues. And they also start with no issues. When I try to connect using browser to the home page of both my app and weblocks-demo app, I get "The value 0 is not of type SEQUENCE". As far as I can understand from the backtrace, there is an issue with weblocks:mark-dirty function, so I tried to trace it. But, when I (trace weblocks:mark-dirty), suddenly everything works fine. I can connect and use my app, and weblocks-demo, and it seems as there is no problem. But, as soon as I (untrace weblocks:mark-dirty), app stops and I get the same backtrace. In my app there are no (optimize (speed x) (safetx)) setups, I'm using default sbcl values, and as far as I can see, so does the weblocks-demo. I've tried deleting all of the fasls in ~/.cache/common-lisp dir and recompiling, no difference. Release sbcl 1.0.43 works fine, but every release version after that (including latest dev version) generates the same error, in the same backtrace place. >From the weblocks mail list, I was instructed to contact you here. I can provide additional information, but I'll need assistance and pointers in doing so, since I'm not an sbcl/CL expert. Here is the backtrace: The value 0 is not of type SEQUENCE. [Condition of type TYPE-ERROR] Restarts: 0: [TERMINATE-THREAD] Terminate this thread (#<THREAD "Request prelude" RUNNING {1002C4E3C1}>) Backtrace: 0: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGING-ENVIRONMENT) #<FUNCTION (LAMBDA #) {10056128B9}>) Locals: SB-KERNEL:*HANDLER-CLUSTERS* = :<NOT-AVAILABLE> SWANK-BACKEND::*SLDB-STACK-TOP* = :<NOT-AVAILABLE> SWANK-BACKEND::DEBUGGER-LOOP-FN = #<FUNCTION (LAMBDA ()) {10056128B9}> 1: (SWANK::DEBUG-IN-EMACS #<TYPE-ERROR expected-type: SEQUENCE datum: 0>) Locals: SB-DEBUG::ARG-0 = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> 2: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {100887CC09}>) Locals: *INVOKE-DEBUGGER-HOOK* = :<NOT-AVAILABLE> SWANK-BACKEND::CONTINUATION = #<CLOSURE (LAMBDA ()) {100887CC09}> SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> 3: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {100887CC09}>) Locals: *DEBUGGER-HOOK* = :<NOT-AVAILABLE> SB-KERNEL:*HANDLER-CLUSTERS* = :<NOT-AVAILABLE> SWANK-BACKEND::FUN = #<CLOSURE (LAMBDA ()) {100887CC09}> SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> 4: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #) (*STANDARD-INPUT* . #) (*TRACE-OUTPUT* . #) (*ERROR-OUTPUT* . #) (*DEBUG-IO* . #) (*QUERY-IO* . #) ...) #<CLOSURE (LAMBDA #) {100887CC29}>) Locals: SB-DEBUG::ARG-0 = ((*STANDARD-OUTPUT* . #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1002EEEE01}>) ... SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA ()) {100887CC29}> 5: (SWANK:INVOKE-SLIME-DEBUGGER #<TYPE-ERROR expected-type: SEQUENCE datum: 0>) Locals: SB-DEBUG::ARG-0 = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> 6: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {100887CBC9}>) Locals: *INVOKE-DEBUGGER-HOOK* = :<NOT-AVAILABLE> SWANK-BACKEND::CONTINUATION = #<CLOSURE (LAMBDA ()) {100887CBC9}> SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> 7: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {100887CBC9}>) Locals: *DEBUGGER-HOOK* = :<NOT-AVAILABLE> SB-KERNEL:*HANDLER-CLUSTERS* = :<NOT-AVAILABLE> SWANK-BACKEND::FUN = #<CLOSURE (LAMBDA ()) {100887CBC9}> SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> 8: (SWANK:SWANK-DEBUGGER-HOOK #<TYPE-ERROR expected-type: SEQUENCE datum: 0> #<unavailable argument>) Locals: SB-DEBUG::ARG-0 = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> 9: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<TYPE-ERROR expected-type: SEQUENCE datum: 0>) Locals: SB-DEBUG::ARG-0 = *DEBUGGER-HOOK* SB-DEBUG::ARG-1 = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> 10: (INVOKE-DEBUGGER #<TYPE-ERROR expected-type: SEQUENCE datum: 0>) Locals: SB-DEBUG::ARG-0 = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> 11: ((FLET #:LAMBDA19) #<TYPE-ERROR expected-type: SEQUENCE datum: 0>) Locals: SB-DEBUG::ARG-0 = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> 12: (SIGNAL #<TYPE-ERROR expected-type: SEQUENCE datum: 0>) Locals: SB-KERNEL::ARGUMENTS = NIL SB-KERNEL::DATUM = #<TYPE-ERROR expected-type: SEQUENCE datum: 0> 13: (ERROR TYPE-ERROR :DATUM 0 :EXPECTED-TYPE SEQUENCE) Locals: SB-KERNEL::ARGUMENTS = (:DATUM 0 :EXPECTED-TYPE SEQUENCE) SB-KERNEL::DATUM = TYPE-ERROR 14: (SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #.(SB-SYS:INT-SAP #X7FFFF5525A80) SB-DEBUG::ARG-2 = #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7FFFF5525540 :TYPE (* ..)> SB-DEBUG::ARG-3 = (21 85) 15: (SB-KERNEL:INTERNAL-ERROR #.(SB-SYS:INT-SAP #X7FFFF5525540) #<unavailable argument>) Locals: SB-DEBUG::ARG-0 = #.(SB-SYS:INT-SAP #X7FFFF5525540) SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> 16: ("foreign function: call_into_lisp") [No Locals] 17: ("foreign function: funcall2") [No Locals] 18: ("foreign function: interrupt_internal_error") [No Locals] 19: ("foreign function: #x412F2A") [No Locals] 20: (REMOVE NIL 0)[:OPTIONAL] Locals: SB-DEBUG::ARG-0 = NIL SB-DEBUG::ARG-1 = 0 SB-DEBUG::ARG-2 = 17592163650385 SB-DEBUG::ARG-3 = 0 21: (REMOVE NIL 0)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 2 SB-DEBUG::ARG-1 = NIL SB-DEBUG::ARG-2 = 0 22: ((SB-PCL::FAST-METHOD WEBLOCKS:MARK-DIRTY (WEBLOCKS:WIDGET)) #<unused argument> #<unused argument> #<WEBLOCKS:WIDGET "dom0"> :PROPAGATE T :PUTP #<unused argument>) Locals: #:N-SUPPLIED-929 = NIL #:N-SUPPLIED-930 = NIL #:PROPAGATE-DEFAULTING-TEMP = T WEBLOCKS::W = #<WEBLOCKS:WIDGET "dom0"> 23: ((SB-PCL::FAST-METHOD (SETF SB-MOP:SLOT-VALUE-USING-CLASS) (T WEBLOCKS:WIDGET-CLASS WEBLOCKS:WIDGET WEBLOCKS::WIDGET-EFFECTIVE-SLOT-DEFINITION)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA (SB-PCL::NV CLASS SB-KERNEL:INSTANCE ...)) {1008783679}> SB-DEBUG::ARG-2 = NIL SB-DEBUG::ARG-3 = #<WEBLOCKS:WIDGET-CLASS WEBLOCKS:WIDGET> SB-DEBUG::ARG-4 = #<WEBLOCKS:WIDGET "dom0"> SB-DEBUG::ARG-5 = #<WEBLOCKS::WIDGET-EFFECTIVE-SLOT-DEFINITION WEBLOCKS:DOM-CLASS> 24: ((LAMBDA (&REST SB-PCL::ARGS)) NIL #<WEBLOCKS:WIDGET "dom0">)[:OPTIONAL] Locals: SB-DEBUG::ARG-0 = 17592163650447 SB-DEBUG::ARG-1 = 2 25: ((LAMBDA ())) [No Locals] 26: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST (WEBLOCKS:WEBLOCKS-WEBAPP)) #<unavailable argument> #<unavailable argument> #<unavailable argument>) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = :<NOT-AVAILABLE> 27: ((FLET #:|doit-77|)) [No Locals] 28: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND (T)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-2 = #<VTS::VTS {100CD5F4B1}> 29: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND (T)) ..)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 3 SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-3 = #<VTS::VTS {100CD5F4B1}> 30: (WEBLOCKS::CALL-IN-WEBAPP #<VTS::VTS {100CD5F4B1}> #<CLOSURE (LAMBDA #) {100848C749}>) Locals: SB-DEBUG::ARG-0 = #<VTS::VTS {100CD5F4B1}> SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA ()) {100848C749}> 31: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND (WEBLOCKS:WEBLOCKS-WEBAPP)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-2 = #<VTS::VTS {100CD5F4B1}> 32: ((SB-PCL::FAST-METHOD HUNCHENTOOT:HANDLE-REQUEST (HUNCHENTOOT:ACCEPTOR HUNCHENTOOT:REQUEST)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<WEBLOCKS:WEBLOCKS-ACCEPTOR (host localhost, port 8443)> SB-DEBUG::ARG-3 = #<HUNCHENTOOT:REQUEST {100846F5B1}> 33: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-REQUEST (T)) #<unavailable argument> #<unavailable argument> #<HUNCHENTOOT:REQUEST {100846F5B1}>) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<HUNCHENTOOT:REQUEST {100846F5B1}> Catch-tags: HUNCHENTOOT::HANDLER-DONE 34: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION (HUNCHENTOOT:ACCEPTOR T)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = :<NOT-AVAILABLE> SB-DEBUG::ARG-2 = #<WEBLOCKS:WEBLOCKS-ACCEPTOR (host localhost, port 8443)> SB-DEBUG::ARG-3 = #<USOCKET:STREAM-USOCKET {1002C4B821}> 35: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION (WEBLOCKS:WEBLOCKS-ACCEPTOR T)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-2 = #<WEBLOCKS:WEBLOCKS-ACCEPTOR (host localhost, port 8443)> SB-DEBUG::ARG-3 = #<USOCKET:STREAM-USOCKET {1002C4B821}> 36: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION :AROUND (HUNCHENTOOT:ACCEPTOR T)) ..) Locals: SB-DEBUG::ARG-0 = :<NOT-AVAILABLE> SB-DEBUG::ARG-1 = #S(SB-PCL::FAST-METHOD-CALL ..) SB-DEBUG::ARG-2 = #<WEBLOCKS:WEBLOCKS-ACCEPTOR (host localhost, port 8443)> SB-DEBUG::ARG-3 = #<USOCKET:STREAM-USOCKET {1002C4B821}> 37: ((LAMBDA ())) [No Locals] 38: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK360]365)) [No Locals] 39: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) [No Locals] Catch-tags: SB-IMPL::%END-OF-THE-WORLD SB-INT:TOPLEVEL-CATCHER 40: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) [No Locals] 41: (SB-THREAD::CALL-WITH-MUTEX ..) Locals: SB-DEBUG::ARG-0 = #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF5526CB9}> SB-DEBUG::ARG-1 = #S(SB-THREAD:MUTEX ..) SB-DEBUG::ARG-2 = #<SB-THREAD:THREAD "Request prelude" RUNNING {1002C4E3C1}> SB-DEBUG::ARG-3 = T 42: (SB-THREAD::INITIAL-THREAD-FUNCTION) [No Locals] 43: ("foreign function: call_into_lisp") [No Locals] 44: ("foreign function: new_thread_trampoline") [No Locals] |
From: Nikodemus S. <nik...@ra...> - 2011-02-26 23:13:38
|
2011/2/26 Slobodan Milnović <slo...@gm...>: > I'm using x86_64 GNU/Linux, sbcl 1.0.46.13 and latest weblocks-dev. > Week ago, I've updated sbcl from 1.0.45 to latest, and weblocks-dev to > latest (among other libs that weblocks requires) using clbuild. The > result is a bit strange. Both my app and weblocks-demo (demo weblocks > app) compile with no issues. And they also start with no issues. When > I try to connect using browser to the home page of both my app and > weblocks-demo app, I get "The value 0 is not of type SEQUENCE". As far > as I can understand from the backtrace, there is an issue with > weblocks:mark-dirty function, so I tried to trace it. But, when I > (trace weblocks:mark-dirty), suddenly everything works fine. I can > connect and use my app, and weblocks-demo, and it seems as there is no > problem. But, as soon as I (untrace weblocks:mark-dirty), app stops > and I get the same backtrace. The revision most likely the be the source of regression is 1.0.46.11 -- can you try with 1.0.46.10 and see if the problem disappears? If it does, I would be very interested in having a poke at your application in order to cook up a test-case and fix. ...and if it doesn't, we'll try to figure what else could be the source. Cheers, -- Nikodemus |
From: Slobodan M. <slo...@gm...> - 2011-02-27 19:07:58
|
2011/2/27 Nikodemus Siivola <nik...@ra...>: > The revision most likely the be the source of regression is 1.0.46.11 > -- can you try with 1.0.46.10 and see if the problem disappears? Just tried both my app and weblocks demo app that comes with weblocks, using 1.0.46.10. Same error. Like I said, after 1.0.43, every release version I have tried generates the same error. One more person responded to my error report in the weblocks mail list, that he has the same issue, so it seems that I'm not the only one. |
From: Nikodemus S. <nik...@ra...> - 2011-02-28 08:58:00
|
2011/2/27 Slobodan Milnović <slo...@gm...>: > Just tried both my app and weblocks demo app that comes with weblocks, > using 1.0.46.10. Same error. Like I said, after 1.0.43, every release > version I have tried generates the same error. One more person I'm officially confused. I was able to reproduce the issue, and have fixed it in SBCL 1.0.46.15, where weblocks-demo now works for me -- but the regression I found was in 1.0.45.18, so the only release affected should have been 1.0.46. So if the version Weblocks currently in Quicklisp has generated this error with weblocks-demo in 1.0.45 and 1.0.44, then something else is the matter as well. Can you confirm that the error happens to you with 1.0.45 and 1.0.44 as well? Cheers, -- Nikodemus |
From: Slobodan M. <slo...@gm...> - 2011-02-28 09:58:15
|
2011/2/28 Nikodemus Siivola <nik...@ra...>: > 2011/2/27 Slobodan Milnović <slo...@gm...>: > >> Just tried both my app and weblocks demo app that comes with weblocks, >> using 1.0.46.10. Same error. Like I said, after 1.0.43, every release >> version I have tried generates the same error. One more person > > I'm officially confused. I was able to reproduce the issue, and have > fixed it in SBCL 1.0.46.15, where weblocks-demo now works for me -- > but the regression I found was in 1.0.45.18, so the only release > affected should have been 1.0.46. > > So if the version Weblocks currently in Quicklisp has generated this > error with weblocks-demo in 1.0.45 and 1.0.44, then something else is > the matter as well. > > Can you confirm that the error happens to you with 1.0.45 and 1.0.44 as well? Yes, I can. Standard procedure - download release version tar.bz2 source archive from www.sbcl.org, unpack, sh make.sh, sh install.sh (as root of course), start emacs, slime, (asdf... 'weblocks-demo), (weblocks-demo:start...) and try to connect to it using an browser. When I first did the update of all of the libraries to the latest upstream version (including weblocks-dev and sbcl 1.0.46.13), I had that error. Since there were issues with CLX before, I guessed that you guys enforced something that previously was optional, so while waiting for the resolution by weblocks team, I have tried to revert to the older version. I have tried release versions 1.0.45 and 1.0.44, but I got it working only with 1.0.43. But! I was using clbuild at that time, the old version, not the new version that uses quicklisp. I've even tried this weekend using the clbuild2, but this time only with the 1.0.46.10, and there was the same error, as I have reported in the previous e-mail. I don't know if that makes an difference. I'll try it tonight when I get home and let you know the results. P.S. Why did weblocks-demo worked with trace and without it didn't? Does trace do something extra to to the sbcl environment? |
From: Nikodemus S. <nik...@ra...> - 2011-02-28 10:33:17
|
2011/2/28 Slobodan Milnović <slo...@gm...>: > P.S. Why did weblocks-demo worked with trace and without it didn't? > Does trace do something extra to to the sbcl environment? The bug is that the instance isn't getting initialized quite right. I didn't track down the details of exactly why TRACE did that, but from what I saw I gather that: TRACE causes an additional error, the handling of which accidentally fixes the badly initialized slots. Anyways, it versions outside the range 1.0.45.18 - 1.0.46.15 cause the same error, then something else is/was going on too. Cheers, -- Nikodemus |
From: Slobodan M. <slo...@gm...> - 2011-02-28 19:37:23
|
2011/2/28 Nikodemus Siivola <nik...@ra...>: > 2011/2/28 Slobodan Milnović <slo...@gm...>: > >> P.S. Why did weblocks-demo worked with trace and without it didn't? >> Does trace do something extra to to the sbcl environment? > > The bug is that the instance isn't getting initialized quite right. > > I didn't track down the details of exactly why TRACE did that, but > from what I saw I gather that: TRACE causes an additional error, the > handling of which accidentally fixes the badly initialized slots. Two bugs in one stroke? :-D I'd just like to say that everything works now, thank you! |