[Varnish] #278: Varnish at some point can't handle a spesific URL

Varnish varnish-bugs at projects.linpro.no
Mon Jul 21 22:11:00 CEST 2008


#278: Varnish at some point can't handle a spesific URL
----------------------+-----------------------------------------------------
 Reporter:  ay        |        Owner:  phk                      
     Type:  defect    |       Status:  new                      
 Priority:  normal    |    Milestone:  Varnish 2.0 code complete
Component:  varnishd  |      Version:  trunk                    
 Severity:  major     |   Resolution:                           
 Keywords:  PURGE     |  
----------------------+-----------------------------------------------------
Old description:

> Sometime varnish won't handle a specific URL. After a restart. Everything
> is back to normal. This happens quite often, and usually with with a
> specific URL.
>
> This works: (talking to backend)
> [root at fritz ~]# echo -e "GET /sport/fotball/
> HTTP/1.0\nHost:www.vg.no\n\n" | nc 10.0.0.151 80 |head -1
> HTTP/1.1 200 OK
>
> This works: (talking to backend)
> [root at fritz ~]# echo -e "GET /sport/fotball
> HTTP/1.0\nHost:www.vg.no\n\n" | nc 10.0.0.151 80 |head -1
> HTTP/1.1 301 Moved Permanently
>
> This works: (talking to varnish on localhost)
> [root at fritz ~]# echo -e "GET /sport/fotball
> HTTP/1.0\nHost:www.vg.no\n\n" | nc localhost 80 |head -1
> HTTP/1.1 301 Moved Permanently
>
> This does not work at the moment on one of the varnishes:
>
> [root at fritz ~]# echo -e "GET /sport/fotball/
> HTTP/1.0\nHost:www.vg.no\n\n" | nc localhost 80 |head -1
>
> It just hangs forever. ( waited up to 10 minutes )
>
> Running on another varnish it works
>
> [root at maddie ~]# echo -e "GET /sport/fotball/
> HTTP/1.0\nHost:www.vg.no\n\n" | nc localhost 80 |head -1
> HTTP/1.1 200 OK
>
> Same varnish, same vcl
>
> Varnishlog on the working varnish
>
>  2315 ReqStart     c 127.0.0.1 51162 512297753
>  2315 RxRequest    c GET
>  2315 RxURL        c /sport/fotball/
>  2315 RxProtocol   c HTTP/1.0
>  2315 RxHeader     c Host:www.vg.no
>  2315 VCL_call     c recv lookup
>  2315 VCL_call     c hash hash
>  2315 Hit          c 510694686
>  2315 VCL_call     c hit deliver
>  2315 Length       c 158261
>  2315 VCL_call     c deliver deliver
>  2315 TxProtocol   c HTTP/1.1
>  2315 TxStatus     c 200
>  2315 TxResponse   c OK
>  2315 TxHeader     c Server: Apache/1.3.27 (Unix)
>  2315 TxHeader     c X-VG-WebServer: leonora, leonora
>  2315 TxHeader     c Cache-Control: max-age=3600
>  2315 TxHeader     c Expires: Mon, 21 Jul 2008 14:49:42 GMT
>  2315 TxHeader     c Content-Type: text/html
>  2315 TxHeader     c Content-Length: 158261
>  2315 TxHeader     c X-VG-WebCache: maddie
>  2315 TxHeader     c Date: Mon, 21 Jul 2008 14:03:24 GMT
>  2315 TxHeader     c X-Varnish: 512297753 510694686
>  2315 TxHeader     c Age: 822
>  2315 TxHeader     c Via: 1.1 varnish
>  2315 TxHeader     c Connection: close
>  2315 ReqEnd       c 512297753 1216649004.307805061 1216649004.308098078
> 0.00003
> 0994 0.000028849 0.000264168
>
> The non working
>
> 38070 SessionOpen  c 127.0.0.1 56364 :80
> 38070 ReqStart     c 127.0.0.1 56364 3818273786
> 38070 RxRequest    c GET
> 38070 RxURL        c /sport/fotball/
> 38070 RxProtocol   c HTTP/1.0
> 38070 RxHeader     c Host:www.vg.no
> 38070 VCL_call     c recv lookup
> 38070 VCL_call     c hash hash
>
> Then nothing happens. No miss no hit
>
> Purge working version (hit)
>
>  3461 RxRequest    c PURGE
>  3461 RxURL        c /sport/fotball/
>  3461 RxProtocol   c HTTP/1.0
>  3461 RxHeader     c Host:www.vg.no
>  3461 VCL_call     c recv
>  3461 VCL_acl      c MATCH purge "localhost"
>  3461 VCL_return   c lookup
>  3461 VCL_call     c hash hash
>  3461 Hit          c 510694686
>  3461 VCL_call     c hit
>  3461 TTL          c 510694686 VCL 0 1216649372
>  3461 VCL_return   c error
>  3461 SessionClose c error returned
>  3461 TxProtocol   c HTTP/1.0
>  3461 TxStatus     c 200
>  3461 TxResponse   c OK
>  3461 TxHeader     c Date: Mon, 21 Jul 2008 14:09:32 GMT
>  3461 TxHeader     c Server: Varnish
>  3461 TxHeader     c Retry-After: 0
>  3461 TxHeader     c Content-Type: text/html; charset=utf-8
>  3461 TxHeader     c X-Varnish: 513000671
>  3461 TxHeader     c Connection: close
>  3461 ReqEnd       c 513000671 1216649372.271184921 1216649372.271277905
> 0.00005
> 1975 nan nan
>
> Pruge Working version (miss)
>  5750 RxRequest    c PURGE
>  5750 RxURL        c /sport/fotball/
>  5750 RxProtocol   c HTTP/1.0
>  5750 RxHeader     c Host:www.vg.no
>  5750 VCL_call     c recv
>  5750 VCL_acl      c MATCH purge "localhost"
>  5750 VCL_return   c lookup
>  5750 VCL_call     c hash hash
>  5750 VCL_call     c miss error
>  5750 SessionClose c error returned
>  5750 TxProtocol   c HTTP/1.0
>  5750 TxStatus     c 404
>  5750 TxResponse   c Not Found
>  5750 TxHeader     c Date: Mon, 21 Jul 2008 14:10:49 GMT
>  5750 TxHeader     c Server: Varnish
>  5750 TxHeader     c Retry-After: 0
>  5750 TxHeader     c Content-Type: text/html; charset=utf-8
>  5750 TxHeader     c X-Varnish: 513145422
>  5750 TxHeader     c Connection: close
>  5750 ReqEnd       c 513145422 1216649449.873359919 1216649449.873445988
> 0.00004
> 6968 nan nan
>

>

> Purge non working version:
>
> 36848 RxRequest    c PURGE
> 36848 RxURL        c /sport/fotball/
> 36848 RxProtocol   c HTTP/1.0
> 36848 RxHeader     c Host:www.vg.no
> 36848 VCL_call     c recv
> 36848 VCL_acl      c MATCH purge "localhost"
> 36848 VCL_return   c lookup
> 36848 VCL_call     c hash hash
>
> varnish-2.0-trunk2914 on redhat 5.2

New description:

 Sometime varnish won't handle a specific URL. After a restart. Everything
 is back to normal. This happens quite often, and usually with with a
 specific URL.
 {{{
 This works: (talking to backend)
 [root at fritz ~]# echo -e "GET /sport/fotball/
 HTTP/1.0\nHost:www.vg.no\n\n" | nc 10.0.0.151 80 |head -1
 HTTP/1.1 200 OK

 This works: (talking to backend)
 [root at fritz ~]# echo -e "GET /sport/fotball
 HTTP/1.0\nHost:www.vg.no\n\n" | nc 10.0.0.151 80 |head -1
 HTTP/1.1 301 Moved Permanently

 This works: (talking to varnish on localhost)
 [root at fritz ~]# echo -e "GET /sport/fotball
 HTTP/1.0\nHost:www.vg.no\n\n" | nc localhost 80 |head -1
 HTTP/1.1 301 Moved Permanently

 This does not work at the moment on one of the varnishes:

 [root at fritz ~]# echo -e "GET /sport/fotball/
 HTTP/1.0\nHost:www.vg.no\n\n" | nc localhost 80 |head -1

 It just hangs forever. ( waited up to 10 minutes )

 Running on another varnish it works

 [root at maddie ~]# echo -e "GET /sport/fotball/
 HTTP/1.0\nHost:www.vg.no\n\n" | nc localhost 80 |head -1
 HTTP/1.1 200 OK

 Same varnish, same vcl

 Varnishlog on the working varnish

  2315 ReqStart     c 127.0.0.1 51162 512297753
  2315 RxRequest    c GET
  2315 RxURL        c /sport/fotball/
  2315 RxProtocol   c HTTP/1.0
  2315 RxHeader     c Host:www.vg.no
  2315 VCL_call     c recv lookup
  2315 VCL_call     c hash hash
  2315 Hit          c 510694686
  2315 VCL_call     c hit deliver
  2315 Length       c 158261
  2315 VCL_call     c deliver deliver
  2315 TxProtocol   c HTTP/1.1
  2315 TxStatus     c 200
  2315 TxResponse   c OK
  2315 TxHeader     c Server: Apache/1.3.27 (Unix)
  2315 TxHeader     c X-VG-WebServer: leonora, leonora
  2315 TxHeader     c Cache-Control: max-age=3600
  2315 TxHeader     c Expires: Mon, 21 Jul 2008 14:49:42 GMT
  2315 TxHeader     c Content-Type: text/html
  2315 TxHeader     c Content-Length: 158261
  2315 TxHeader     c X-VG-WebCache: maddie
  2315 TxHeader     c Date: Mon, 21 Jul 2008 14:03:24 GMT
  2315 TxHeader     c X-Varnish: 512297753 510694686
  2315 TxHeader     c Age: 822
  2315 TxHeader     c Via: 1.1 varnish
  2315 TxHeader     c Connection: close
  2315 ReqEnd       c 512297753 1216649004.307805061 1216649004.308098078
 0.00003
 0994 0.000028849 0.000264168

 The non working

 38070 SessionOpen  c 127.0.0.1 56364 :80
 38070 ReqStart     c 127.0.0.1 56364 3818273786
 38070 RxRequest    c GET
 38070 RxURL        c /sport/fotball/
 38070 RxProtocol   c HTTP/1.0
 38070 RxHeader     c Host:www.vg.no
 38070 VCL_call     c recv lookup
 38070 VCL_call     c hash hash

 Then nothing happens. No miss no hit

 Purge working version (hit)

  3461 RxRequest    c PURGE
  3461 RxURL        c /sport/fotball/
  3461 RxProtocol   c HTTP/1.0
  3461 RxHeader     c Host:www.vg.no
  3461 VCL_call     c recv
  3461 VCL_acl      c MATCH purge "localhost"
  3461 VCL_return   c lookup
  3461 VCL_call     c hash hash
  3461 Hit          c 510694686
  3461 VCL_call     c hit
  3461 TTL          c 510694686 VCL 0 1216649372
  3461 VCL_return   c error
  3461 SessionClose c error returned
  3461 TxProtocol   c HTTP/1.0
  3461 TxStatus     c 200
  3461 TxResponse   c OK
  3461 TxHeader     c Date: Mon, 21 Jul 2008 14:09:32 GMT
  3461 TxHeader     c Server: Varnish
  3461 TxHeader     c Retry-After: 0
  3461 TxHeader     c Content-Type: text/html; charset=utf-8
  3461 TxHeader     c X-Varnish: 513000671
  3461 TxHeader     c Connection: close
  3461 ReqEnd       c 513000671 1216649372.271184921 1216649372.271277905
 0.00005
 1975 nan nan

 Pruge Working version (miss)
  5750 RxRequest    c PURGE
  5750 RxURL        c /sport/fotball/
  5750 RxProtocol   c HTTP/1.0
  5750 RxHeader     c Host:www.vg.no
  5750 VCL_call     c recv
  5750 VCL_acl      c MATCH purge "localhost"
  5750 VCL_return   c lookup
  5750 VCL_call     c hash hash
  5750 VCL_call     c miss error
  5750 SessionClose c error returned
  5750 TxProtocol   c HTTP/1.0
  5750 TxStatus     c 404
  5750 TxResponse   c Not Found
  5750 TxHeader     c Date: Mon, 21 Jul 2008 14:10:49 GMT
  5750 TxHeader     c Server: Varnish
  5750 TxHeader     c Retry-After: 0
  5750 TxHeader     c Content-Type: text/html; charset=utf-8
  5750 TxHeader     c X-Varnish: 513145422
  5750 TxHeader     c Connection: close
  5750 ReqEnd       c 513145422 1216649449.873359919 1216649449.873445988
 0.00004
 6968 nan nan




 Purge non working version:

 36848 RxRequest    c PURGE
 36848 RxURL        c /sport/fotball/
 36848 RxProtocol   c HTTP/1.0
 36848 RxHeader     c Host:www.vg.no
 36848 VCL_call     c recv
 36848 VCL_acl      c MATCH purge "localhost"
 36848 VCL_return   c lookup
 36848 VCL_call     c hash hash

 varnish-2.0-trunk2914 on redhat 5.2

 }}}

-- 
Ticket URL: <http://varnish.projects.linpro.no/ticket/278#comment:1>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator


More information about the varnish-bugs mailing list