
varnish-bugs at varnish-cache
Jun 18, 2012, 7:28 AM
Post #4 of 7
(148 views)
Permalink
|
|
Re: #1156: first_byte_timeout is "doubled" on the client side when keep-alive is used
[In reply to]
|
|
#1156: first_byte_timeout is "doubled" on the client side when keep-alive is used -------------------+-------------------------------------------------------- Reporter: tnt | Type: defect Status: new | Priority: normal Milestone: | Component: varnishd Version: trunk | Severity: normal Keywords: | -------------------+-------------------------------------------------------- Comment(by tnt): A bit more investigation turned some more infos: - The request is actually retried on a new backend connection, which is why it takes twice as much time - It doesn't happen on the first connection because there is no 'retry' for fresh new backend connections. What happens is that the code that retries request to a backend in case of keepalive (like is the backend closes the connection) decides to retry the request ... But that's not an acceptable behavior for a 'timeout' error, only for things like connection reset or if the request couldn't be sent but not timeout on the response. To check if this was really the source of the problem I tried this hack: {{{ diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c index 7ccba0a..f71cd45 100644 --- a/bin/varnishd/cache/cache_fetch.c +++ b/bin/varnishd/cache/cache_fetch.c @@ -510,7 +510,7 @@ FetchHdr(struct sess *sp, int need_host_hdr, int sendbody) VDI_CloseFd(&bo->vbc); /* XXX: other cleanup ? */ /* Retryable if we never received anything */ - return (i == -1 ? retry : -1); + return -1; } VTCP_set_read_timeout(vc->fd, vc->between_bytes_timeout); }}} (It's obviously not a 'fix' because it disables retry in all cases but that was just to confirm the source of the issue). Ideally we'd need to know if HTC_Rx timed out or had a real error. -- Ticket URL: <https://www.varnish-cache.org/trac/ticket/1156#comment:3> 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
|