[Varnish] #644: Deadlock in 2.0.x under high load.
Varnish
varnish-bugs at projects.linpro.no
Fri Feb 5 23:34:17 CET 2010
#644: Deadlock in 2.0.x under high load.
----------------------+-----------------------------------------------------
Reporter: kmcfate | Owner: phk
Type: defect | Status: new
Priority: normal | Milestone:
Component: varnishd | Version: 2.0
Severity: normal | Resolution:
Keywords: deadlock |
----------------------+-----------------------------------------------------
Comment (by kmcfate):
This is easily reproducible.
It looks like the pipe is overflowing. It is set to edge triggered.
According to epoll docs, if it is using edge triggered, and data is
written to pipe, but not all of it is read, another trigger will not
happen until all data is read. Since the reader is only reading NEEV
events per read, it leaves data in the pipe if there are more than NEEV#
and never gets run again. I suggest either running this pipe in level
triggering or loop in the reader to see if data remains in the pipe.
Steps to reproduce:
run the following on about 200 machines on same network:
ab -c 1000 -n 100000 http://varnish/
Results: If new sessions between events exceeds NEEV, varnish cows because
it never handles the extras and the epoll event never triggers again.
Expected Results: Somewhat higher load. No cows.
--
Ticket URL: <http://varnish-cache.org/ticket/644#comment:2>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list