[Varnish] #1562: panic when retrying a short read of req.body - Wrong req_body_status in HTTP1_IterateReqBody()

Varnish varnish-bugs at varnish-cache.org
Mon Jul 28 21:49:16 CEST 2014


#1562: panic when retrying a short read of req.body - Wrong req_body_status in
HTTP1_IterateReqBody()
----------------------+---------------------
 Reporter:  slink     |      Owner:  slink
     Type:  defect    |     Status:  new
 Priority:  high      |  Milestone:
Component:  varnishd  |    Version:  unknown
 Severity:  critical  |   Keywords:
----------------------+---------------------
 I will attach a preliminary test case for this, of which the output is
 given below.

 The test case needs a change to vtc_http in order to prematurely close a
 client connection. The attached patch is not a proper solution to this vtc
 requirement.

 {{{
 ***  v1    1.5 debug| Child (18542) died signal=6\n
 ***  v1    1.5 debug| Child (18542) Panic message:\n
 ***  v1    1.5 debug| Wrong turn at cache/cache_http1_fsm.c:574:\n
 ***  v1    1.5 debug| Wrong req_body_status in HTTP1_IterateReqBody()\n
 ***  v1    1.5 debug| thread = (cache-worker)\n
 ***  v1    1.5 debug| ident =
 Linux,3.13-1-amd64,x86_64,-smalloc,-smalloc,-hcritbit,epoll\n
 ***  v1    1.5 debug| Backtrace:\n
 ***  v1    1.5 debug|   0x4323f8: pan_ic+0xd8\n
 ***  v1    1.5 debug|   0x42d3b8: HTTP1_IterateReqBody+0x178\n
 ***  v1    1.5 debug|   0x42b12d: V1F_fetch_hdr+0x10d\n
 ***  v1    1.5 debug|   0x41fe96: vbf_fetch_thread+0x10a6\n
 ***  v1    1.5 debug|   0x434fe9: Pool_Work_Thread+0x389\n
 ***  v1    1.5 debug|   0x4476cd: wrk_thread_real+0xad\n
 ***  v1    1.5 debug|   0x7fdee09d80ca: /lib/x86_64-linux-
 gnu/libpthread.so.0(+0x80ca) [0x7fdee09d80ca]\n
 ***  v1    1.5 debug|   0x7fdee070d06d: /lib/x86_64-linux-
 gnu/libc.so.6(clone+0x6d) [0x7fdee070d06d]\n
 ***  v1    1.5 debug|   busyobj = 0x7fdeb80008e0 {\n
 ***  v1    1.5 debug|     ws = 0x7fdeb80009a0 {\n
 ***  v1    1.5 debug|       id = "bo",\n
 ***  v1    1.5 debug|       {s,f,r,e} =
 {0x7fdeb80028c0,+112,(nil),+57376},\n
 ***  v1    1.5 debug|     },\n
 ***  v1    1.5 debug|   refcnt = 2\n
 ***  v1    1.5 debug|   retries = 1\n
 ***  v1    1.5 debug|   failed = 0\n
 ***  v1    1.5 debug|   state = 1\n
 ***  v1    1.5 debug|     is_do_stream\n
 ***  v1    1.5 debug|     is_do_pass\n
 ***  v1    1.5 debug|     is_uncacheable\n
 ***  v1    1.5 debug|     bodystatus = 0 (none),\n
 ***  v1    1.5 debug|     },\n
 ***  v1    1.5 debug|     http[bereq] = {\n
 ***  v1    1.5 debug|       ws = 0x7fdeb80009a0[bo]\n
 ***  v1    1.5 debug|         "POST",\n
 ***  v1    1.5 debug|         "/",\n
 ***  v1    1.5 debug|         "HTTP/1.1",\n
 ***  v1    1.5 debug|         "Content-Length: 10000",\n
 ***  v1    1.5 debug|         "X-Forwarded-For: 127.0.0.1",\n
 ***  v1    1.5 debug|         "X-Varnish: 1003",\n
 ***  v1    1.5 debug|         "Host: 127.0.0.1",\n
 ***  v1    1.5 debug|     },\n
 ***  v1    1.5 debug|     http[beresp] = {\n
 ***  v1    1.5 debug|       ws = 0x7fdeb80009a0[bo]\n
 ***  v1    1.5 debug|     },\n
 ***  v1    1.5 debug|     ws = 0x7fdeb8000b28 { BAD_MAGIC(0x00000000) },\n
 ***  v1    1.5 debug|     },\n
 ***  v1    1.5 debug|   objcore (FETCH) = 0x7fdea0000950 {\n
 ***  v1    1.5 debug|     refcnt = 2\n
 ***  v1    1.5 debug|     flags = 0x102\n
 ***  v1    1.5 debug|     objhead = 0xcfd420\n
 ***  v1    1.5 debug|   }\n
 ***  v1    1.5 debug|   }\n
 ***  v1    1.5 debug| \n
 ***  v1    1.5 debug| \n
 }}}

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1562>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator



More information about the varnish-bugs mailing list