Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-30 Thread Tom Lane
"Drouvot, Bertrand" writes: > On 9/30/21 7:16 PM, Tom Lane wrote: >> PS: Memo to self: in the back branches, the new field has to be >> added at the end of struct Portal. > out of curiosity, why? Sticking it into the middle would create an ABI break for any extension code that's looking at struc

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-30 Thread Tom Lane
"Drouvot, Bertrand" writes: > [ v2-0003-EnsurePortalSnapshotExists-failed-assertion.patch ] Looking through this, I think you were overenthusiastic about applying PushActiveSnapshotWithLevel. We don't really need to use it except in the places where we're setting portalSnapshot, because other th

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Tom Lane
"Drouvot, Bertrand" writes: > But make check is now failing on join_hash.sql, I have been able to > repro with: Oh, duh, should have thought a bit harder. createSubid is a sequential subtransaction number; it's not the same as the as_level nesting level. Probably the most effective way to hand

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Ranier Vilela
Em qua., 29 de set. de 2021 às 15:01, Tom Lane escreveu: > Alvaro Herrera writes: > > On 2021-Sep-29, Ranier Vilela wrote: > >> Em qua., 29 de set. de 2021 às 08:12, Drouvot, Bertrand < > bdrou...@amazon.com> > >> escreveu: > >> Duplicating functions is very bad for maintenance and bloats the co

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Tom Lane
Alvaro Herrera writes: > On 2021-Sep-29, Ranier Vilela wrote: >> Em qua., 29 de set. de 2021 às 08:12, Drouvot, Bertrand >> escreveu: >> Duplicating functions is very bad for maintenance and bloats the code >> unnecessarily, IMHO. > Well, there are 42 calls of PushActiveSnapshot currently, and o

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Alvaro Herrera
On 2021-Sep-29, Ranier Vilela wrote: > Em qua., 29 de set. de 2021 às 08:12, Drouvot, Bertrand > escreveu: > > Adding a new function prevents "updating" existing extensions making use > > of PushActiveSnapshot(). > > > Valid argument of course. > But the extensions should also fit the core code.

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Alvaro Herrera
On 2021-Sep-28, Tom Lane wrote: > 1. Provide a variant of PushActiveSnapshot that allows the caller > to specify the as_level to use, and then have > EnsurePortalSnapshotExists, as well as other places that create > Portal-associated snapshots, use this with as_level equal to the > Portal's create

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Ranier Vilela
Em qua., 29 de set. de 2021 às 08:12, Drouvot, Bertrand escreveu: > Hi, > On 9/29/21 12:59 PM, Ranier Vilela wrote: > > > Em qua., 29 de set. de 2021 às 06:55, Drouvot, Bertrand < > bdrou...@amazon.com> escreveu: > >> I'm also inclined to #1. >> > I have a stupid question, why duplicate PushActiv

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-29 Thread Ranier Vilela
Em qua., 29 de set. de 2021 às 06:55, Drouvot, Bertrand escreveu: > Hi, > > On 9/28/21 6:50 PM, Tom Lane wrote: > > "Drouvot, Bertrand" writes: > >> Does it make sense (as it is currently) to set the ActiveSnapshot to > >> NULL and not ensuring the same is done for ActivePortal->portalSnapshot?

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-28 Thread Tom Lane
"Drouvot, Bertrand" writes: > Does it make sense (as it is currently) to set the ActiveSnapshot to > NULL and not ensuring the same is done for ActivePortal->portalSnapshot? I think that patch is just a kluge :-( After tracing through this I've figured out what is happening, and why you need to

Re: [BUG] failed assertion in EnsurePortalSnapshotExists()

2021-09-27 Thread Tom Lane
"Drouvot, Bertrand" writes: > I recently observed a failed assertion in EnsurePortalSnapshotExists(). Hmm, interesting. If I take out the "update bdt2" step, so that the exception clause is just COMMIT, then I get something different: ERROR: portal snapshots (1) did not account for all active