Delay when fetching a page without Content-Length

2007-03-31 Thread Adam Sjøgren
In my experiments, I've run into a long(ish) delay when I ask for a
url behind http auth:

 $ time wget -S http://www.koldfront.local/stats/
 [...¹]
 real0m16.799s
 [...]

Going directly to Apache:

 $ time wget -S http://www.koldfront.local:8080/stats/
 [...²]
 real0m0.013s
 [...]

I have previously observed such delays on pages where I didn't return
a Content-Length header (or, embarrassingly, did it wrong) - is this
related, or should it just work when Apache sends 'Transfer-Encoding:
chunked'?


(I have configured Varnish to 'pass' if there is an WWW-Authenticate
or Authorization-header³ - I hope that is correct).


  Best regards,

Adam


¹  --18:27:24--  http://www.koldfront.local/stats/
= `index.html'
 Resolving www.koldfront.local... 192.168.1.111
 Connecting to www.koldfront.local|192.168.1.111|:80... connected.
 HTTP request sent, awaiting response... 
   HTTP/1.1 401 Authorization Required
   Date: Sat, 31 Mar 2007 16:27:26 GMT
   Server: Apache/1.3.33 (Debian GNU/Linux) mod_fastcgi/2.4.2 mod_perl/1.29
   WWW-Authenticate: Basic realm=Statistics
   Content-Type: text/html; charset=iso-8859-1
   X-Varnish: 1997136530
   X-Forwarded-for: 192.168.1.160
   Transfer-Encoding: chunked
 Authorization failed.

²  --18:28:14--  http://www.koldfront.local:8080/stats/
= `index.html'
 Resolving www.koldfront.local... 192.168.1.111
 Connecting to www.koldfront.local|192.168.1.111|:8080... connected.
 HTTP request sent, awaiting response... 
   HTTP/1.1 401 Authorization Required
   Date: Sat, 31 Mar 2007 16:28:17 GMT
   Server: Apache/1.3.33 (Debian GNU/Linux) mod_fastcgi/2.4.2 mod_perl/1.29
   WWW-Authenticate: Basic realm=Statistics
   Connection: close
   Content-Type: text/html; charset=iso-8859-1
   X-Pad: avoid browser bug
 Authorization failed.

³ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=416940

-- 
 Subdued flamboyanceAdam Sjøgren
 [EMAIL PROTECTED]

___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Delay when fetching a page without Content-Length

2007-03-31 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Adam =?iso-8859-1?Q?Sj=F8gren?= writes:
On Sat, 31 Mar 2007 17:17:10 +, Poul-Henning wrote:

 Which version of Varnish are you running ?

The one from Debian unstable backported to stable, i.e. 1.0.3:

13 VCL_call c fetch
13 VCL_return   c pass

Hmm, you're running into a bug in the pass implementation which
have since been fixed.

Try using pipe mode for authenticated requests instead, by putting
this in your vcl_recv function:

if (req.http.Authenticate || req.http.Cookie) {
pipe;
}
 


-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Delay when fetching a page without Content-Length

2007-03-31 Thread Poul-Henning Kamp
In message [EMAIL PROTECTED], Adam =?iso-8859-1?Q?Sj=F8gren?= writes:
On Sat, 31 Mar 2007 18:18:36 +, Poul-Henning wrote:

 Hmm, you're running into a bug in the pass implementation which
 have since been fixed.

Ah, great.

(Where can I read about meaning of these? I have scanned through
vcl(7), varnishd(1) and the FAQ).

 Try using pipe mode for authenticated requests instead, by putting
 this in your vcl_recv function:

  if (req.http.Authenticate || req.http.Cookie) {
  pipe;
  }

Hm. I think I have done something wrong, because that made it worse:

 sub vcl_recv {
 if (req.http.authorization) {

Should have been:  req.http.authenticate

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Delay when fetching a page without Content-Length

2007-03-31 Thread Adam Sjøgren
On Sat, 31 Mar 2007 19:22:37 +, Poul-Henning wrote:

 if (req.http.authorization) {

 Should have been:  req.http.authenticate

Well, no such header is ever sent, from what I can see, but I'll give
it a go.

No difference - still ~16s delay.


First the browser asks for the page and the server answers with
WWW-Authenticate: Basic realm= The browser then asks me for
username and password, and goes on to retry the request, this time
with an Authorization: Basic ... header added.

The delay occurs on the first request.


  Best regards,

 Adam

-- 
 Yakka foob mog. Grug pubbawup zink wattoom gazork.  Adam Sjøgren
  Chumble spuzz.[EMAIL PROTECTED]

___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc


Re: Delay when fetching a page without Content-Length

2007-03-31 Thread dwetzel
 Hello,
 I had a smilar issue testing varnish last friday,
 the backend was sending a 302 with a Transfert-Encoding:chunked,
 Using tcpdump i noticed that varnish was trying to open a new tcp
 connection with the backend, 3 attempts were made (delay ~15s) before
varnish
 gave up and forwarded back the 302 to the client.
 there were no authorisation header.
Best Regards,

 On Sat, 31 Mar 2007 17:17:10 +, Poul-Henning wrote:

 Which version of Varnish are you running ?

 The one from Debian unstable backported to stable, i.e. 1.0.3:

  $ /usr/sbin/varnishd -V
  varnishd (varnish-1.0.3)
  Copyright (c) 2006 Linpro AS / Verdens Gang AS
  $

 Can you send me the output from varnishlog for the transaction ?

 Sure:

  $ varnishlog
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364221
 13 SessionOpen  c 192.168.1.160 52579
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364224
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364227
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364230
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364233
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364236
 13 ReqStart c 192.168.1.160 52579 1997137143
 13 RxRequestc GET
 13 RxURLc /stats/
 13 RxProtocol   c HTTP/1.0
 13 RxHeader c User-Agent: Wget/1.10.2
 13 RxHeader c Accept: */*
 13 RxHeader c Host: www.koldfront.local
 13 RxHeader c Connection: Keep-Alive
 13 VCL_call c recv
 13 VCL_return   c lookup
 13 VCL_call c miss
 13 VCL_return   c fetch
 17 BackendOpen  b default 127.0.0.1 1027 127.0.0.1 8080
 17 BackendXID   b 1997137143
 13 Backend  c 17 default
 17 TxRequestb GET
 17 TxURLb /stats/
 17 TxProtocol   b HTTP/1.1
 17 TxHeader b User-Agent: Wget/1.10.2
 17 TxHeader b Accept: */*
 17 TxHeader b Host: www.koldfront.local
 17 TxHeader b X-Varnish: 1997137143
 17 TxHeader b X-Forwarded-for: 192.168.1.160
 17 RxProtocol   b HTTP/1.1
 17 RxStatus b 401
 17 RxResponse   b Authorization Required
 17 RxHeader b Date: Sat, 31 Mar 2007 18:03:42 GMT
 17 RxHeader b Server: Apache/1.3.33 (Debian GNU/Linux)
 mod_fastcgi/2.4.2 mod_perl/1.29
 17 RxHeader b WWW-Authenticate: Basic realm=Statistics
 17 RxHeader b Transfer-Encoding: chunked
 17 RxHeader b Content-Type: text/html; charset=iso-8859-1
 13 TTL  c 1997137143 RFC 120 1175364222 1175364222 0 0 0
 13 VCL_call c fetch
 13 VCL_return   c pass
 13 RxProtocol   c HTTP/1.1
 13 RxStatus c 401
 13 RxResponse   c Authorization Required
 13 RxHeader c Date: Sat, 31 Mar 2007 18:03:42 GMT
 13 RxHeader c Server: Apache/1.3.33 (Debian GNU/Linux)
 mod_fastcgi/2.4.2 mod_perl/1.29
 13 RxHeader c WWW-Authenticate: Basic realm=Statistics
 13 RxHeader c Content-Type: text/html; charset=iso-8859-1
 13 RxHeader c X-Varnish: 1997137143
 13 RxHeader c X-Forwarded-for: 192.168.1.160
 13 RxHeader c Transfer-Encoding: chunked
 17 BackendReuse b default
 13 ReqEnd   c 1997137143 1175364222.294967044 1175364238.516689601
 0.000751112 0.001383653 16.220338904
  0 StatAddr   192.168.1.160 0 8161 36 37 0 20 11 11486 92507
 13 HttpErrorc Received errno 104
 13 SessionClose c no request
 13 StatSess c 192.168.1.160 52579 16 1 1 0 1 0 322 529
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364239
  0 CLIRd ping
  0 CLIWr 0 200 PONG 1175364242
  ^C
  $

 (If I run ngrep I see the request being sent to Apache and the reply
 back immediately, and then the pause).


 Let me know if I should supply more information.


   Best regards,

 Adam

 --
  we push onward. to you, it is 2005, to us, it isAdam Sjøgren
   2011. we are always far ahead.[EMAIL PROTECTED]

 ___
 varnish-misc mailing list
 varnish-misc@projects.linpro.no
 http://projects.linpro.no/mailman/listinfo/varnish-misc



___
varnish-misc mailing list
varnish-misc@projects.linpro.no
http://projects.linpro.no/mailman/listinfo/varnish-misc