varnish && zope/plone: varnish does not find cachefu purges: returns 404 instead.

David Murphy David at firechaser.com
Tue Mar 16 09:04:13 CET 2010


Hi Rob

Not sure if this is the same issue (I'm new to Varnish) but  http://varnish-cache.org/wiki/FAQ/Compression helped me sort out an issue I had where one browser was caching the page, but a different browser was not grabbing the cached data due to Vary: Accept-Encoding header issue.

Best, David
________________________________________
From: varnish-misc-bounces at varnish-cache.org [varnish-misc-bounces at varnish-cache.org] On Behalf Of Rob Rogers [robertbrogers at gmail.com]
Sent: 16 March 2010 03:28
To: varnish-misc at varnish-cache.org
Subject: varnish && zope/plone: varnish does not find cachefu purges: returns   404 instead.

The Issue: cachefu fails to purge cache on object changes.
This means user sees stale, incorrect content.
Product Versions: Plone-2.5.3, plone2.5.3, CacheFu-1.0.2, varnish-2.0.6

To reproduce:
* In browser1: login and go to any page
* In browser 2: view same page.
* In browser 1: edit page  (add some dots to title). save
* In browser 2: refresh page
THE BUG: browser 2 shows old version of page

Another way to reproduce this is to use portal_squid tool to purge article. Same problem occurs.

./bin/varnishlog shows the error:
"""
  16 RxURL        c http://dude.com.moneyXXX/archive/2010/february/the-thirteen-races-to-watch<http://american.aei.org/archive/2010/february/the-thirteen-races-to-watch>
   16 RxProtocol   c HTTP/1.0
   16 VCL_call     c recv
   16 VCL_acl      c MATCH purge localhost
   16 VCL_return   c lookup
   16 VCL_call     c hash
   16 VCL_return   c hash
   16 VCL_call     c miss
    0 Debug        - "VCL_error(404, Not in cache)"
"""

The odd thing is that normal requests from the browser produce a RxURL like:
>>   13 RxURL        c /archive/2010/february/the-thirteen-races-to-watch

I find this odd, because the requests from the browser to varnish don't include the http host. I wonder if this version of cachefu doesn't work with varnish.

A couple notes:

* I tried messing with the varnish.vcl to normalize the http.host
/*      if (req.http.host ~ "(www.)?xxx.org") { */
/*        set req.http.host = "xxx.org"; */
/*      } else { */
/*        error 404 req.http.host; /\* "Unknown virtual host." *\/ */
/*      } */
but, it failed to produce desired results

* i started messing with it because of this post:
http://davidjb.com/blog/2009/01/plone-varnish-configuration-cache-hits-purge-fails
and this:
http://varnish-cache.org/wiki/VCLExampleNormalizingReq<http://varnish-cache.org/wiki/VCLExampleNormalizingReqUrl>

Thanks for any help or guidance.

-Rob




More information about the varnish-misc mailing list