Re: [PATCH] pgarchives: Fix crash when receiving a request with an incorrect If-Modified-Since header - Mailing list pgsql-www

From Magnus Hagander
Subject Re: [PATCH] pgarchives: Fix crash when receiving a request with an incorrect If-Modified-Since header
Date
Msg-id CABUevEw5vaGmCz-O5dFqmfszXO_aQPC=ggWSVh9WUqdgc6NepQ@mail.gmail.com
Whole thread
In response to [PATCH] pgarchives: Fix crash when receiving a request with an incorrect If-Modified-Since header  (Célestin Matte <celestin.matte@cmatte.me>)
List pgsql-www


On Fri, 12 Jun 2026 at 10:52, Célestin Matte <celestin.matte@cmatte.me> wrote:
Django crashes when receiving a request containing a If-Modified-Since header with an incorrect date:


Traceback (most recent call last):
    File "/path/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner
      response = get_response(request)
                 ^^^^^^^^^^^^^^^^^^^^^
    File "/path/lib/python3.13/site-packages/django/core/handlers/base.py", line 197, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/path/archives/mailarchives/views.py", line 112, in __cache
      resp = fn(request, *_args, **_kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/path/archives/mailarchives/views.py", line 500, in message
      if ims >= newest:
         ^^^^^^^^^^^^^

Exception Type: TypeError at /message-id/<redacted>
Exception Value: '>=' not supported between instances of 'NoneType' and 'int'


This patch adds a condition to avoid this.

Good catch. Applied. Thanks!
 

(For some reason, archives on postgresql.org do NOT crash on this. Are headers filtered before reaching pgarchives there? When deploying upstream version of pgarchives locally, I do have this crash)

IMS in particular is handled by the cache. So the brwoser does IMS <-> the cache, and then varnish does it independently <-> backend. And Varnish will always create the correct headers. And since headers from the client are never passed through to the backend, it doesn't show up there.

 
--

pgsql-www by date:

Previous
From: Célestin Matte
Date:
Subject: [PATCH] pglister: .gitlab-ci: move to Debian 13
Next
From: Magnus Hagander
Date:
Subject: Re: [PATCH] pglister: .gitlab-ci: move to Debian 13