ML archives caching 404 results - Mailing list pgsql-www

From Marti Raudsepp
Subject ML archives caching 404 results
Date
Msg-id CABRT9RCmobXxGxDyh8YVkQHg3Yi39NQuDfsg57MXCcMgm4tyDg@mail.gmail.com
Whole thread Raw
Responses Re: ML archives caching 404 results
List pgsql-www
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

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".

Regards,
Marti

pgsql-www by date:

Previous
From: Marti Raudsepp
Date:
Subject: [PATCH] Fix colspan of commitfest topic headers
Next
From: Magnus Hagander
Date:
Subject: Re: ML archives caching 404 results