Re: [PATCH] pgarchives: Bugfix: allow message's parentid to be null

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Célestin Matte <celestin(dot)matte(at)cmatte(dot)me>
Cc: PostgreSQL WWW <pgsql-www(at)lists(dot)postgresql(dot)org>
Subject: Re: [PATCH] pgarchives: Bugfix: allow message's parentid to be null
Date: 2021-10-27 09:19:46
Message-ID: CABUevEyFpYPEHh0AAyTAsgymRKOOVA1SY_pDHPCbBQQ9BawfTA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-www

On Tue, Oct 26, 2021 at 8:31 PM Célestin Matte <celestin(dot)matte(at)cmatte(dot)me>
wrote:

> Attached: associated migration
>
> On 25/10/2021 16:52, Célestin Matte wrote:
> > Hello,
> >
> > Upon execution of load_messages.py, when creating a new thread, I get a
> crash:
> > (Sorry about the format, I get this out of strace)
> >
> > Traceback (most recent call last):\n File
> \"/srv/pgarchives/local/loader/load_message.py\", lin\
> > e 174, in <module>\n ap.store(conn, listid, opt.overwrite,
> opt.overwrite)\n File \"/srv/pgarchives/local/loader/li\
> > b/storage.py\", line 232, in store\n 'rawtxt':
> bytearray(self.rawtxt),\npsycopg2.errors.NotNullViolation: null valu\
> > e in column \"parentid\" violates not-null constraint\nDETAIL: Failing
> row contains (2, 2, cmatte <cmatte(at)[my_domain]\
> > .tld>, helloworld(at)[my_pglister_domain], , Test archive after
> redeployment 2, 2021-10-25 14:13:32+00, 1635171212.3\
> > 49997(dot)1068459(dot)nullmailer(at)[my_domain], hello world\n\n\n\n, null, f,
> null, \\x46726f6d2068656c6c6f776f726c642d6f776\
> > e65722b617263686976654062..., '2':5A 'after':3A 'archive':2A 'hello':6
> 'redeployment':4A 'test...).\n\n
> >
> > I think the way to fix this is simply to allow message.parentid to be
> null.
>
>
Yeah, this looks to be another disreptency between the Django model and the
schema.sql file. The table when created from schema.sql will allow nulls.
So I can confirm that the field *should* allow nulls, and the only reason
it hasn't been an actual problem is that we never ever do any writes to the
system through the django model.

That said, I think the correct solutoin is still, as I mentioned in one of
the other threads, to completely move everything into the initial
migration, instead of doing a piecemeal hack that's going to result in a
lot of small migrations for no real reason. We should just accept that the
existing one is broken and replace it.

If you're willing to look into working on that I'd be happy to review on
that one, but if it seems a bit too much I can work on that one myself as
well, but it might take a bit before I have time to dig into it properly.

//Magnus

In response to

Responses

Browse pgsql-www by date

  From Date Subject
Next Message Magnus Hagander 2021-10-27 09:21:37 Re: [PATCH] pgweb: Add ARCHIVES_FRONT_ADDRESS to allow configuration of archives
Previous Message Célestin Matte 2021-10-26 18:31:46 Re: [PATCH] pgarchives: Bugfix: allow message's parentid to be null