[Varnish] #1747: VSL API: assertion failure "c->next.ptr < c->end" in vsl_cursor.c/vslc_vsm_next() in load tests

Varnish varnish-bugs at varnish-cache.org
Fri Jun 26 14:38:39 CEST 2015


#1747: VSL API: assertion failure "c->next.ptr < c->end" in
vsl_cursor.c/vslc_vsm_next() in load tests
------------------------+----------------------------------
 Reporter:  geoff       |       Owner:  slink
     Type:  defect      |      Status:  closed
 Priority:  normal      |   Milestone:  Varnish 4.0 release
Component:  varnishlog  |     Version:  4.0.3
 Severity:  normal      |  Resolution:  fixed
 Keywords:              |
------------------------+----------------------------------
Changes (by Nils Goroll <nils.goroll@…>):

 * status:  new => closed
 * resolution:   => fixed


Comment:

 In [35cf78131c2aaaf8227c31ba92eb577c5bea9855]:
 {{{
 #!CommitTicketReference repository=""
 revision="35cf78131c2aaaf8227c31ba92eb577c5bea9855"
 Simplify vsl segment management, fixing spurious vsl overruns

 vsl sequence and segment updates didn't happen atomically, so
 vslc_vsm_check could report spurious overruns.

 Replace sequence and segment index with a counter (segment_n), which
 always increments (with overflow after UINT_MAX). The actual segment
 index will be segment_n % VSL_SEGMENTS. Overrun detection by
 calculation of the difference between two segment numbers becomes
 simple and safe because we only ever access/update a single integer.

 Update the shared memory log head.

 (struct VSLC_ptr).priv is now the the equivalent of segment_n from the
 reader side. It gets initialized once and is maintained independently.

 Patch prepared in collaboration with Martin Blix Grydeland
 <martin at varnish-software.com>

 Fixes: #1747
 }}}

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1747#comment:2>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator



More information about the varnish-bugs mailing list