[Varnish] #986: Stream-related Assert error in AssertObjCorePassOrBusy(), cache.h line 1011:

Varnish varnish-bugs at varnish-cache.org
Wed Aug 24 15:46:59 CEST 2011


#986: Stream-related Assert error in AssertObjCorePassOrBusy(), cache.h line
1011:
----------------------+-----------------------------------------------------
 Reporter:  kristian  |       Owner:       
     Type:  defect    |      Status:  new  
 Priority:  normal    |   Milestone:       
Component:  varnishd  |     Version:  trunk
 Severity:  normal    |    Keywords:       
----------------------+-----------------------------------------------------
 Discovered during testing of the streaming code.

 {{{

 debug: 2 (6s) Executing tests
 log: 1 (25s) Server tristran checked out varnish-3.0.0-beta2-155-g555735f
 warning: 0 (233s) httperf TEST (streaming): Panic detected. I think!
 warning: 0 (0s) httperf TEST (streaming):
 Last panic at: Wed, 24 Aug 2011 11:30:16 GMT
 Assert error in AssertObjCorePassOrBusy(), cache.h line 1011:
   Condition((oc->flags & (1<<1)) != 0) not true.
 thread = (cache-worker)
 ident = Linux,2.6.32-33-server,x86_64,-smalloc,-smalloc,-hcritbit,epoll
 Backtrace:
   0x42e368: pan_ic+d8
   0x41872b: cnt_prepresp+3bb
   0x418cbd: CNT_Session+3cd
   0x42fb58: wrk_do_cnt_sess+b8
   0x42ffe1: wrk_thread_real+411
   0x7f44249779ca: _end+7f44242fe712
   0x7f44246d470d: _end+7f442405b455
 sp = 0x7f43dfd13008 {
   fd = 157, id = 157, xid = 1969712598,
   client = 10.20.100.9 6936,
   step = STP_PREPRESP,
   handling = deliver,
   restarts = 0, esi_level = 0
   ws = 0x7f43dfd13080 {
     id = "sess",
     {s,f,r,e} = {0x7f43dfd13cc8,+152,(nil),+65536},
   },
   http[req] = {
     ws = 0x7f43dfd13080[sess]
       "GET",
       "/9/1/3.html",
       "HTTP/1.1",
       "User-Agent: httperf/0.9.0",
       "Host: 10.20.100.4",
       "X-Forwarded-For: 10.20.100.9",
   },
   worker = 0x7f4400af9b60 {
     ws = 0x7f4400af9d08 {
       id = "wrk",
       {s,f,r,e} = {0x7f4400ae7af0,0x7f4400ae7af0,(nil),+65536},
     },
     },
     vcl = {
       srcname = {
         "input",
         "Default",
       },
     },
   obj = 0x7f4418f4c300 {
     xid = 1969712501,
     ws = 0x7f4418f4c318 {
       id = "obj",
       {s,f,r,e} = {0x7f4418f4c4d0,+192,(nil),+224},
     },
     http[obj] = {
       ws = 0x7f4418f4c318[obj]
         "HTTP/1.1",
         "OK",
         "Server: nginx/0.7.65",
         "Date: Wed, 24 Aug 2011 11:30:01 GMT",
         "Content-Type: text/plain",
         "Last-Modified: Wed, 24 Aug 2011 11:27:50 GMT",
         "Content-Length: 1048576",
     },
     len = 1048576,
     store = {
       1048576 {
         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
         00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
         [1048512 more]
       },
     },
   },
 },




 log: 1 (0s) httperf TEST (streaming): Varnishstat uptime and measured run-
 time is too large (measured: 145 stat: 0 diff: 145). Did we crash?
 warning: 0 (0s) httperf TEST (streaming): Out of bounds: client_conn(0)
 less than lower boundary 9900
 warning: 0 (0s) httperf TEST (streaming): Out of bounds: client_req(0)
 less than lower boundary 9800
 log: 1 (0s) httperf TEST (streaming): Test name: streaming
 log: 1 (0s) httperf TEST (streaming): Varnish options:
 log: 1 (0s) httperf TEST (streaming): -t=1
 log: 1 (0s) httperf TEST (streaming): Varnish parameters:
 log: 1 (0s) httperf TEST (streaming): thread_pool_add_delay=1
 log: 1 (0s) httperf TEST (streaming): http_gzip_support=off
 log: 1 (0s) httperf TEST (streaming): default_grace=0
 log: 1 (0s) httperf TEST (streaming): Payload size (excludes headers): 1M
 log: 1 (0s) httperf TEST (streaming): Branch: master
 log: 1 (0s) httperf TEST (streaming): Number of clients involved: 24
 log: 1 (0s) httperf TEST (streaming): Type of test: httperf
 log: 1 (0s) httperf TEST (streaming): Test iterations: 1
 log: 1 (0s) httperf TEST (streaming): Runtime: 145 seconds
 log: 1 (0s) httperf TEST (streaming): VCL:
 backend foo {
         .host = "localhost";
         .port = "80";
         .connect_timeout = 10s;
 }

 sub vcl_fetch {
         set beresp.do_stream = true;
         set beresp.grace = 0s;
         set beresp.ttl = 15s;
 }

 sub vcl_deliver {
         set resp.http.x-fryer = "some test";
 }

 log: 1 (0s) httperf TEST (streaming): Number of total connections: 10000
 log: 1 (0s) httperf TEST (streaming): Note: connections are subject to
 rounding when divided among clients. Expect slight deviations.
 log: 1 (0s) httperf TEST (streaming): Requests per connection: 1
 log: 1 (0s) httperf TEST (streaming): Extra options to httperf:
 --wset=1000,0.1 --rate 3
 log: 1 (0s) httperf TEST (streaming): Httperf command (last client):
 httperf --hog --timeout 60 --num-calls 1 --num-conns 416 --port 8080
 --burst-length 1 --client 23/24 --server 10.20.100.4 --wset=1000,0.1
 --rate 3
 warning: 0 (0s) Tests finished with problems detected. Failed
 expectations: 4 Total run time: 265 seconds
 debug: 2 (0s) Sending mail
 }}}

 As discussed on IRC already.

-- 
Ticket URL: <http://varnish-cache.org/trac/ticket/986>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator




More information about the varnish-bugs mailing list