Hey,
I am running Hunchentoot 8.1. As soon as I upgraded to flexi-streams 0.11.1 I have encountered a weird problem. Hunchentoot (or anything else) threw no errors but the socket was getting closed unexpectedly I think, because links cribbed "error reading socket" or something. I am running Allegro 8.0 Enterprise 64bit on Redhat Linux. (problem also persisted on Allegro 8.0 for the Intel Mac's)
As soon as I went back to 0.8.0 (my previous version) all worked as before.
Am I doing something wrong here ? How can I help debug this more ?
thanks, quasi
On Thu, 05 Apr 2007 19:07:40 +0530, quasi quasilists@gmail.com wrote:
I am running Hunchentoot 8.1.
0.8.1 I hope... :)
As soon as I upgraded to flexi-streams 0.11.1 I have encountered a weird problem. Hunchentoot (or anything else) threw no errors but the socket was getting closed unexpectedly I think, because links cribbed "error reading socket" or something. I am running Allegro 8.0 Enterprise 64bit on Redhat Linux. (problem also persisted on Allegro 8.0 for the Intel Mac's)
As soon as I went back to 0.8.0 (my previous version) all worked as before.
Am I doing something wrong here ?
I doubt it. There were significant changes between 0.8.0 and 0.11.1 and it is likely that you're the first one to use the new version on AllegroCL, especially on a 64-bit version (if that matters, don't know).
There's also a chance that some of my recent Hunchentoot changes which I hastily submitted in the wake of my ILC preparations broke something which results in sockets being closed although they shouldn't. That's why I'm sending a copy of this to tbnl-devel as well.
How can I help debug this more ?
Try to get a detailed backtrace of the error. You might want to check what the previous page (before the socket was closed) was supposed to send (return code, size of content, headers, transfer encoding).
Also, delete the FASL files from FLEXI-STREAMS and Hunchentoot, recompile, and check all the warnings you might get during compilation.
Thanks, Edi.
Edi Weitz wrote:
On Thu, 05 Apr 2007 19:07:40 +0530, quasi quasilists@gmail.com wrote:
I am running Hunchentoot 8.1.
0.8.1 I hope... :)
my bad. :) it is indeed 0.8.1
As soon as I upgraded to flexi-streams 0.11.1 I have encountered a weird problem. Hunchentoot (or anything else) threw no errors but the socket was getting closed unexpectedly I think, because links cribbed "error reading socket" or something. I am running Allegro 8.0 Enterprise 64bit on Redhat Linux. (problem also persisted on Allegro 8.0 for the Intel Mac's)
As soon as I went back to 0.8.0 (my previous version) all worked as before.
Am I doing something wrong here ?
I doubt it. There were significant changes between 0.8.0 and 0.11.1 and it is likely that you're the first one to use the new version on AllegroCL, especially on a 64-bit version (if that matters, don't know).
I dont think it matters. Observed on 32bit ACL 8.0 on the Intel Mac and 64bit ACL 8.0 on RH Linux.
There's also a chance that some of my recent Hunchentoot changes which I hastily submitted in the wake of my ILC preparations broke something which results in sockets being closed although they shouldn't. That's why I'm sending a copy of this to tbnl-devel as well.
How can I help debug this more ?
Try to get a detailed backtrace of the error. You might want to check what the previous page (before the socket was closed) was supposed to send (return code, size of content, headers, transfer encoding).
Also, delete the FASL files from FLEXI-STREAMS and Hunchentoot, recompile, and check all the warnings you might get during compilation.
Ya I tried a complete recompile. No change. Also on another machine which had 0.9.1 and it worked. With 0.11.1 compile gave only 2 warnings.
;;; /Users/quasi/quasiLabs/lisp-libraries/flexi-streams-0.11.1/stream.lisp ; While compiling (METHOD SET-ENCODING-TABLE (T)): Warning: Variable STREAM is never used. ; While compiling (METHOD SET-ENCODING-HASH (T)): Warning: Variable STREAM is never used.
Problem is there are no errors thrown at all, so what do I do?
Thanks, Edi.
On Thu, 05 Apr 2007 21:00:03 +0530, quasi quasilists@gmail.com wrote:
Problem is there are no errors thrown at all, so what do I do?
Did you try with *CATCH-ERRORS-P* set to NIL?
Edi Weitz wrote:
On Thu, 05 Apr 2007 21:00:03 +0530, quasi quasilists@gmail.com wrote:
Problem is there are no errors thrown at all, so what do I do?
Did you try with *CATCH-ERRORS-P* set to NIL?
OOPS. Did'nt know about that. I was dependent on the *show-lisp-errors-p*. :( Have to find time to RTF[M|D].
Well the backtrace is here.
`NIL' is not of the expected type `REAL' [Condition of type TYPE-ERROR]
Restarts: 0: [ABORT] Abort entirely from this (lisp) process.
Backtrace: 0: (SWANK::DEBUG-IN-EMACS #<TYPE-ERROR @ #x1111bdba>) ... 8: (INVOKE-DEBUGGER #<TYPE-ERROR @ #x1111bdba>) 9: (SIGNAL #<TYPE-ERROR @ #x1111bdba>) 10: (ERROR TYPE-ERROR :DATUM NIL :EXPECTED-TYPE REAL :FORMAT-CONTROL "~@<`~s' is not of the expected type `~s'~:@>" :FORMAT-ARGUMENTS (NIL REAL)) 11: ((METHOD TRIVIAL-GRAY-STREAMS:STREAM-WRITE-SEQUENCE (FLEXI-STREAMS::FLEXI-LATIN-1-OUTPUT-STREAM STRING T T)) #<FLEXI-STREAMS::FLEXI-LATIN-1-OUTPUT-STREAM @ #x111199ca> "<html><head><title>Hunchentoot</title></head><body>...</body></html>" 0 NIL) Locals: #:STREAM = #<FLEXI-STREAMS::FLEXI-LATIN-1-OUTPUT-STREAM @ #x111199ca> #:SEQUENCE919 = "<html><head><title>Hunchentoot</title></head><body>...</body></html>" #:START920 = 0 #:END921 = NIL #:AMPERSAND-ARGS = NIL #:AMPERSAND-ARGS = NIL #:|g919| = "<html><head><title>Hunchentoot</title></head><body>...</p></body></html>" #:|g921| = NIL #:|g920| = 0 STREAM = #<FLEXI-STREAMS::FLEXI-LATIN-1-OUTPUT-STREAM @ #x111199ca> #:|g922| = #(153 156 17 17 133 6 0 16 153 156 ...) #:|g923| = 0 #:|g926| = NIL #:|g927| = #<non-lisp object @ #x5> #:DEST-PTR925 = -268442126 #:SRC-PTR924 = #\null #:|g932| = ((EXCL:PIPE-STREAM . :STREAMP)) #:STREAM = #<FLEXI-STREAMS::FLEXI-LATIN-1-OUTPUT-STREAM @ #x111199ca> #:|g919| = "<html><head><title>Hunchentoot</title></head><body><h2>H...</p></body></html>" #:|g961| = (8192) #:|g928| = -2 EXCL::.NEXT-METHOD. = #<Function (METHOD TRIVIAL-GRAY-STREAMS:STREAM-WRITE-SEQUENCE (FLEXI-STREAMS::FLEXI-8-BIT-OUTPUT-STREAM STRING T T))> #:|g929| = #<non-lisp object @ #x1> OCTET = #<STANDARD-GENERIC-FUNCTION INITIALIZE-INSTANCE> NIL = #<FLEXI-STREAMS::EXTERNAL-FORMAT (:ISO-8859-1 :EOL-STYLE :LF) @ #x10f07d32> #:|g963| = :FLEXI-STREAM-EXTERNAL-FORMAT CHAR = #<FLEXI-STREAMS::VECTOR-OUTPUT-STREAM @ #x111198e2> NIL = :STREAM NIL = #<STANDARD-CLASS FLEXI-OUTPUT-STREAM> #:|g964| = #<non-lisp object @ #x459ca1> EXCL::.NEXT-METHODS. = (#<Function (METHOD TRIVIAL-GRAY-STREAMS:STREAM-WRITE-SEQUENCE (FLEXI-OUTPUT-STREAM T T T))>)
On Thu, 05 Apr 2007 22:28:00 +0530, quasi quasilists@gmail.com wrote:
10: (ERROR TYPE-ERROR :DATUM NIL :EXPECTED-TYPE REAL :FORMAT-CONTROL "~@<`~s' is not of the expected type `~s'~:@>" :FORMAT-ARGUMENTS (NIL REAL))
Ah, OK, that was a bug only AllegroCL complained about it seems. Should be fixed in 0.11.2.
Thanks, Edi.
flexi-streams-devel@common-lisp.net