Re: ML archives caching 404 results - Mailing list pgsql-www

From Magnus Hagander
Subject Re: ML archives caching 404 results
Date
Msg-id CABUevEzaOY9jjQ6Ak0WH9BoJK-kqhhhDcj+xoYfv6+kJe2qaog@mail.gmail.com
Whole thread Raw
In response to ML archives caching 404 results  (Marti Raudsepp <marti@juffo.org>)
Responses Re: ML archives caching 404 results  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: ML archives caching 404 results  (Marti Raudsepp <marti@juffo.org>)
List pgsql-www
On Tue, Oct 7, 2014 at 3:52 PM, Marti Raudsepp <marti@juffo.org> wrote:
> Hi www,
>
> When adding my messages to CommitFest, I noticed that when I'm fast enough
> to click on the resulting link, I get a 404 page from mailing list archives,
> I guess if archives loader hasn't processed my message yet. This 404 result
> gets cached for a long time, so my message is not viewable even after links
> to it appear in archives.
>
> It's not obvious to me why this happens... The view raises an exception, and
> the cache() decorator should never get around to setting HTTP cache headers
> because it lets the exception pass through.
>
> @cache(hours=4)
> def message(request, msgid):
>         try:
>                 m = Message.objects.get(messageid=msgid)
>         except Message.DoesNotExist:
>                 raise Http404('Message does not exist')
>
> Is there a default expiration time set in Varnish somewhere? Maybe the
> solution is as easy as setting a lower TTL for 404 results in Varnish:
> http://www.garron.me/en/bits/avoid-varnish-cache-404-error-page.html

Yes we cache the 404 pages, and that's definitely intentional. Setting
it lower might be a good idea, yes, but we definitely don't want to
drop it. The default is 4 hours though, which might be a bit of an
overkill. But how should would it have to be to deal with the scenario
you're outlining?


> Another solution would be to somehow shoehorn a cache key into 404 result
> pages, but that smells of hack, since we'd need a different identifier from
> the usual "X-pgthreadid".

Yeah, that's definitely ugly.  We could do something like "purge all
404's whenever a new email arrives", but that seems quite ugly...

-- Magnus HaganderMe: http://www.hagander.net/Work: http://www.redpill-linpro.com/



pgsql-www by date:

Previous
From: Marti Raudsepp
Date:
Subject: ML archives caching 404 results
Next
From: Tom Lane
Date:
Subject: Re: ML archives caching 404 results