[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