Open slyrus opened 7 years ago
And digging more deeply down the rabbit hole, I can see the following when I turn off various optimizations and (the ...) forms. We shouldn't be lying to the compiler and should be striving for correctness over speed here.
The value
263
is not of type
(UNSIGNED-BYTE 8)
[Condition of type TYPE-ERROR]
Restarts:
0: [ABORT] abort thread (#<THREAD "clack-handler-woo" RUNNING {1002339743}>)
Backtrace:
0: (FAST-HTTP.PARSER::PARSE-HEADERS #S(FAST-HTTP.HTTP:HTTP-REQUEST :METHOD :GET :MAJOR-VERSION 1 :MINOR-VERSION 1 :STATUS 0 :CONTENT-LENGTH NIL :CHUNKED-P NIL ...) #S(FAST-HTTP.PARSER:CALLBACKS :MESSAGE-..
Locals:
FAST-HTTP.PARSER:CALLBACKS = #S(FAST-HTTP.PARSER:CALLBACKS ..)
FAST-HTTP.PARSER::DATA = #(71 69 84 32 47 108 ...)
#:DATA2862 = #<invalid object #x7F56EC01166F>
#:ELEM2859 = 65
FAST-HTTP.PARSER::END = 408
#:G-END2858 = 408
#:G2932 = 263
#:G2932#1 = 263
#:G2933 = NIL
#:G2933#1 = NIL
FAST-HTTP.HTTP:HTTP = #S(FAST-HTTP.HTTP:HTTP-REQUEST :METHOD :GET :MAJOR-VERSION 1 :MINOR-VERSION 1 :STATUS 0 :CONTENT-LENGTH NIL :CHUNKED-P NIL ...)
#:P2860 = 231
FAST-HTTP.PARSER::START = 21
1: (FAST-HTTP.PARSER:PARSE-REQUEST #S(FAST-HTTP.HTTP:HTTP-REQUEST :METHOD :GET :MAJOR-VERSION 1 :MINOR-VERSION 1 :STATUS 0 :CONTENT-LENGTH NIL :CHUNKED-P NIL ...) #S(FAST-HTTP.PARSER:CALLBACKS :MESSAGE-B..
2: ((LAMBDA (FAST-HTTP::DATA &KEY :START :END) :IN FAST-HTTP:MAKE-PARSER) #(71 69 84 32 47 108 ...) :START #<unavailable argument> :END #<unavailable argument>)
3: (WOO::READ-CB #S(WOO.EV.SOCKET:SOCKET :WATCHERS #(#.(SB-SYS:INT-SAP #X7F56EC002740) #.(SB-SYS:INT-SAP #X7F56EC002780) #.(SB-SYS:INT-SAP #X7F56EC0027C0)) :LAST-ACTIVITY 1.4963796056381776d9 :FD 20 :REM..
4: ((LAMBDA (WOO.EV.TCP::EVLOOP WOO.EV.TCP::WATCHER WOO.EV.TCP::EVENTS) :IN "/root/quicklisp/dists/quicklisp/software/woo-20170227-git/src/ev/tcp.lisp") #<unused argument> #.(SB-SYS:INT-SAP #X7F56EC00274..
5: ((LAMBDA (SB-ALIEN::ARGS-POINTER SB-ALIEN::RESULT-POINTER FUNCTION) :IN "/root/.cache/common-lisp/sbcl-1.3.18.23-dbb8186-linux-x64/root/quicklisp/dists/quicklisp/software/woo-20170227-git/src/ev/socke..
6: ("foreign function: call_into_lisp")
7: ("foreign function: funcall3")
8: ("foreign function: callback_wrapper_trampoline")
9: ("foreign function: #x20100D1C")
10: (WOO:RUN #<CLOSURE (LAMBDA (LACK.MIDDLEWARE.BACKTRACE::ENV) :IN "/root/quicklisp/dists/quicklisp/software/lack-20161204-git/src/middleware/backtrace.lisp") {10023391CB}> :DEBUG T :PORT 8080 :ADDRESS N..
I can fairly reliably trigger this:
If I use ab to load a page 10,000 times and then load another page, I can trigger this fairly reliably.
Not sure if the problem lies in caveman2/clack/lack/fast-http/etc... or in SBCL itself. Happy to provide more details.