#2 0x0000000000435749 in xassert (msg=0x4c02f1 "conn->body.size_left > 0", file=0x4bd9d0 "client_side.c", line=4445) at debug.c:505 No locals. #3 0x000000000042ece1 in clientProcessBody (conn=0xc270c8) at client_side.c:4445 valid = 1 size = 0 buf = 0x81024f0 "" cbdata = (void *) 0x51703568 callback = (CBCB *) 0x45602f <httpRequestBodyHandler> request = (request_t *) 0x1ed3c80 #4 0x000000000042e853 in clientReadRequest (fd=37, data=0xc270c8) at client_side.c:4331 conn = (ConnStateData *) 0xc270c8 size = 422 F = (fde *) 0x2a957a68b8 len = 4095 ret = 0 #5 0x00000000004346ad in comm_call_handlers (fd=37, read_event=1, write_event=0) at comm_generic.c:264 hdl = (PF *) 0x42e4e3 <clientReadRequest> hdl_data = (void *) 0xc270c8 do_read = 1 F = (fde *) 0x2a957a68b8 do_incoming = 1 #6 0x0000000000434f3e in do_comm_select (msec=579) at comm_epoll.c:195 i = 0 num = 1 saved_errno = 11 #7 0x0000000000434a55 in comm_select (msec=579) at comm_generic.c:390 last_timeout = 1260237328.0927789 rc = 0 start = 1260237328.5134871 #8 0x000000000046722c in main (argc=3, argv=0x7fbfffd798) at main.c:862 errcount = 0
On 08/12/2009, at 4:12 PM, Henrik Nordstrom wrote: > tis 2009-12-08 klockan 13:34 +1100 skrev Mark Nottingham: > >> Any thoughts here? Should this really be >=, or should clientProcessBody >> never get a 0 size_left? > > It's done when size_left == 0, and no further body processing handler > shoud be active on this request at that time. Any data on the connection > at this time is either surplus data (HTTP violation) or a pipelined > request waiting to be processed. > > If you look a little further down (about one screen) in > clientProcessBody you'll also see that the body reader gets unregistered > when processing reaches 0. > > But it would not be harmful to make clientProcessBody gracefully handle > size_left == 0 I guess. > > A backtrace would be nice. > > Regards > Henrik > -- Mark Nottingham m...@yahoo-inc.com