[Varnish] #629: Fix the (Open)Solaris event port acceptor
Varnish
varnish-bugs at varnish-cache.org
Tue May 18 16:48:14 CEST 2010
#629: Fix the (Open)Solaris event port acceptor
----------------------+-----------------------------------------------------
Reporter: slink | Owner: phk
Type: defect | Status: new
Priority: normal | Milestone:
Component: varnishd | Version: 2.0
Severity: normal | Keywords:
----------------------+-----------------------------------------------------
Comment(by slink):
I've analyzed today a core dump of a varnish process panicking with
{{{
Assert error in vca_add(), cache_acceptor_ports.c line 63:
Condition((port_associate(solaris_dport, 4, fd, 0x0001, data)) == 0) not
true. errno = 11 (Resource temporarily unavailable)
}}}
This issue should only occur after Varnish has been running for a long
time under high load (with many parallel connections) and besides the
panic it ''should'' not have negative side effects.
In the original notes for the fix, I had mentioned this point:
No need to call vca_del once we've received an event for the respective
fd
Apparently, my understanding was wrong. I am waiting for confirmation in
http://opensolaris.org/jive/thread.jspa?threadID=129476&tstart=0
but for the meantime, I'll attach a fixed version of the acceptor.
This newer version also implements improved timeout handling, resulting in
less port_getn() calls on low traffic sites plus options to tune the
acceptor for even better throughput trading in additional latency (by
setting nevents > 1 in the code).
Nils
--
Ticket URL: <http://varnish-cache.org/ticket/629#comment:12>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list