
varnish-bugs at varnish-cache
Jul 4, 2012, 3:53 AM
Post #1 of 2
(102 views)
Permalink
|
|
#1162: ban lurker races against HSH_Unbusy()
|
|
#1162: ban lurker races against HSH_Unbusy() ----------------------+----------------------------------------------------- Reporter: martin | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: varnishd | Version: trunk Severity: normal | Keywords: ----------------------+----------------------------------------------------- The ban lurker can raise against HSH_Unbusy(), and try to get the object of an objcore that is still flagged as busy causing assertion. This is particularly visible in 3.0, when using 'do_stream = true;', as the object will be inserted in the ban list on creation, but not unbusyied until after the fetch has finished. It applies to current trunk as well, and also when do_stream isn't set, but the window of race is much smaller. {{{ *** v1 2.5 debug| Child (30452) Panic message: Assert error in oc_getobj(), cache/cache.h line 436:\n *** v1 2.5 debug| Condition((oc->flags & (1<<1)) == 0) not true.\n *** v1 2.5 debug| thread = (ban-lurker)\n *** v1 2.5 debug| ident = Linux,3.2.0-26-generic,x86_64,-sfile,-smalloc,-hcritbit,epoll\n *** v1 2.5 debug| Backtrace:\n *** v1 2.5 debug| 0x43cce7: pan_backtrace+28\n *** v1 2.5 debug| 0x43cfe0: pan_ic+1bd\n *** v1 2.5 debug| 0x413981: oc_getobj+c9\n *** v1 2.5 debug| 0x4168f6: ban_lurker_work+528\n *** v1 2.5 debug| 0x416cbd: ban_lurker+dd\n *** v1 2.5 debug| 0x4524ec: wrk_bgthread+103\n *** v1 2.5 debug| 0x7fd6d1162e9a: _end+7fd6d0ab7662\n *** v1 2.5 debug| 0x7fd6d0e904bd: _end+7fd6d07e4c85\n }}} -- Ticket URL: <https://www.varnish-cache.org/trac/ticket/1162> Varnish <https://varnish-cache.org/> The Varnish HTTP Accelerator _______________________________________________ varnish-bugs mailing list varnish-bugs [at] varnish-cache https://www.varnish-cache.org/lists/mailman/listinfo/varnish-bugs
|