Saint mode

Kristian Lyngstol kristian at redpill-linpro.com
Wed Dec 2 13:04:29 CET 2009


Hi Anders,

On Wed, Nov 18, 2009 at 02:52:39PM +0100, Anders Nordby wrote:
> We spoke briefly about in the Varnish meeting. Unfortunately I can not
> remember the conclusion(s), so I ask again:
> 
> 1) How to check in vcl_recv if a request was restarted saintmode? You
> mentioned something about checking TTL? Does it matter if that request
> is handled with pass or lookup? I want to avoid mixing up restarts due
> to saint mode and restarts due to what should have been normal passes in
> vcl_fetch (IMO) but which are restarts to handle it in vcl_recv to avoid
> "hit for pass" problems.

In vcl_recv we don't have a ttl, so you can't specifically check. You could
do something simple like:

sub vcl_fetch {
	....
	
	if (beresp.status != 200) {
		set req.http.X-Saint-restart = 1;
		set beresp.saintmode = 1m;
		restart;
	}
	...
}

That way you can easily check in recv. It's not perfect, but unless we have
the TTL, that's the only way.

In vcl_hit you can check if obj.ttl is negative, if it is, then you are
using a graced object.

> 2) How do use saint mode when backend fails to respond, covering
> everything from no response/connection to backend just resetting the
> connection? As far as my syslogging shows, connection failures are adressed
> in vcl_error and easy/possible to catch in vcl_fetch?

That's an excellent question. Implementation-wise saint-mode can handle
this, but we loose a bit too much information before we reach vcl_error, it
seems.

Saint-mode uses both the backend and the objecthead(reference) to work, and
we detach it a bit too soon.

PHK: Do you have any idea how to solve this? We've talked about making more
information available in vcl_error before, or just using vcl_fetch...

> Cheers from Gyoda, Saitama, Japan.

Cheers :) Just finished 2.5 weeks of various forms of training and
traveling myself, trying to catch up on mail and whatnot. Apologies for the
somewhat delayed response.

-- 
Kristian Lyngstøl
Redpill Linpro AS
Tlf: +47 21544179
Mob: +47 99014497
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
Url : http://projects.linpro.no/pipermail/varnish-misc/attachments/20091202/c3c0ac6d/attachment.pgp 


More information about the varnish-misc mailing list