Re: [BUG] Failed Assertion in ReorderBufferChangeMemoryUpdate()

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: "Drouvot, Bertrand" <bdrouvot@amazon.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-09-06T11:54:59Z
Lists: pgsql-hackers
On Mon, Sep 6, 2021 at 4:04 PM Amit Kapila <amit.kapila16@gmail.com> wrote:

> On Fri, Aug 13, 2021 at 3:15 PM Drouvot, Bertrand <bdrouvot@amazon.com>
> wrote:
> >
> >
> > Please find attached a patch proposal to avoid the failed assertion (by
> ensuring that ReorderBufferChangeMemoryUpdate() being triggered with
> "addition" set to false in ReorderBufferToastReplace() is done after the
> elog(ERROR,)).
> >
>
> The error can occur at multiple places (like via palloc or various
> other places) between the first time we subtract the change_size and
> add it back after the change is re-computed. I think the correct fix
> would be that in the beginning we just compute the change_size by
> ReorderBufferChangeSize and then after re-computing the change, we
> just subtract the old change_size and add the new change_size. What do
> you think?
>

Yeah, that seems more logical to me.

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com

Commits

  1. Fix reorder buffer memory accounting for toast changes.