accept_fd_holdoff second/millisecond confusion
Poul-Henning Kamp
phk at phk.freebsd.dk
Fri Mar 20 20:43:57 CET 2009
Fixed, thanks!
Poul-Henning
In message <180e6a10903201237y1e86bc00vdd7c7b473a9969cd at mail.gmail.com>, Eden L
i writes:
>Hi all,
>
>We ran into a situation where our backend held connections open for so
>long that we ran into the open file limit. After clearing up the
>backend and ensuring, varnish never came back and we had to restart it
>in order for it to start relaying connections again.
>
>Flipping on debug mode shows the error "Too many open files when
>accept(2)ing. Sleeping." which should sleep for 50 milliseconds
>(according to param.show). Instead it seems to be sleeping for
>50*1000 *seconds* (13 hours). Looking at the code, it appears that
>this is either a doc bug or a code bug. I was able to fix the root
>issue with this patch:
>
>--- a/varnish-2.0.1/bin/varnishd/cache_acceptor.c 2008-10-17
>11:59:49.000000000 -0700
>+++ b/varnish-2.0.1/bin/varnishd/cache_acceptor.c 2009-03-20
>12:16:15.000000000 -0700
>@@ -228,7 +228,7 @@
> case EMFILE:
> VSL(SLT_Debug, ls->sock,
> "Too many open files when
>accept(2)ing. Sleeping.");
>-
>TIM_sleep(params->accept_fd_holdoff * 1000.0);
>+
>TIM_sleep(params->accept_fd_holdoff * 0.001);
> break;
> default:
> VSL(SLT_Debug, ls->sock,
>
>Is this the right fix? Should I create a ticket in trac for this?
>We're getting around it now by setting the max open file limit and
>listen_depth appropriately so that varnish never gets to this point,
>but it'd be nice if this was fixed in case we ever accidentally get
>here again.
>_______________________________________________
>varnish-dev mailing list
>varnish-dev at projects.linpro.no
>http://projects.linpro.no/mailman/listinfo/varnish-dev
>
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the varnish-dev
mailing list