Hi folks,
Is anyone still encountering problems with binary uploads using TBNL with SBCL and the mod_lisp front-end? I've applied Travis Cross' patches to KMRCL and RFC2388. But in spite of the patches, I'm seeing errors when trying to upload a binary file to the tbnl-test demo application. For example:
#<SB-SYS:FD-STREAM for "a constant string" {B7C2F69}> (:EXTERNAL-FORMAT :UTF-8): the octet sequence (226 227 207) cannot be decoded.
I'm using SBCL 0.9.15 on Linux 2.6; TBNL 0.11.3, KMRCL-1.89, and a fresh RFC2388, with the Cross patches applied. *features* and SLIME backtrace are below. I'm happy to do more testing/debugging, but perhaps someone could help point me in the right direction.
Thanks, Graham
*features* (:CL-WHO :TBNL :TBNL-SBCL-DEBUG-PRINT-VARIABLE-ALIST :TBNL-BIVALENT-STREAMS :URL-REWRITE :KMR-NORMAL-DSDC :KMR-NORMAL-CESD :CL-PPCRE :KMR-MOP :ASDF :SB-THREAD :ANSI-CL :COMMON-LISP :SBCL :UNIX :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :X86 :ELF :LINUX :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD :C-STACK-IS-CONTROL-STACK :STACK-ALLOCATABLE-CLOSURES :ALIEN-CALLBACKS :LINKAGE-TABLE :OS-PROVIDES-DLOPEN :OS-PROVIDES-DLADDR :OS-PROVIDES-PUTWC)
Snipped backtrace: 7: (TBNL::MAYBE-INVOKE-DEBUGGER #<SB-INT:STREAM-DECODING-ERROR {CFC3BC1}>) 8: (SIGNAL #<SB-INT:STREAM-DECODING-ERROR {CFC3BC1}>) 9: (ERROR SB-INT:STREAM-DECODING-ERROR) 10: (SB-INT:STREAM-DECODING-ERROR #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> (226 227 207)) 11: (SB-IMPL::STREAM-DECODING-ERROR-AND-HANDLE #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> 3) 12: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> NIL NIL) 13: (READ-CHAR #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> NIL NIL #<unused argument>) 14: ((FLET RFC2388::RUN) #<SB-SYS:FD-STREAM for "file /tmp/tbnl/tbnl-16" {CFC39B1}>) 15: (RFC2388::READ-UNTIL-NEXT-BOUNDARY #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> "--------------------$ 16: ((SB-PCL::FAST-METHOD RFC2388:PARSE-MIME (STREAM T)) #<unavailable argument> #<unavailable argument> #<SB-SYS:$ 17: (TBNL::PARSE-RFC2388-FORM-DATA #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> "multipart/form-data; bou$ 18: ((SB-PCL::FAST-METHOD INITIALIZE-INSTANCE :AFTER (TBNL::REQUEST)) (#(NIL 1 2 0 3 5 8 4 6) . #()) #<unavailable$ 19: ((LAMBDA (SB-PCL::|.P0.|)) #<unavailable argument>) 20: (TBNL::PROCESS-REQUEST (("content-stream" . #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}>) ("server-pr$ 21: (TBNL::LISTEN-FOR-REQUEST #<SB-SYS:FD-STREAM for "a constant string" {C6F56C1}> TBNL::PROCESS-REQUEST) 22: ((LAMBDA NIL))