Обсуждение: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

Поиск
Список
Период
Сортировка

BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      19056
Logged by:          Fei Changhong
Email address:      feichanghong@qq.com
PostgreSQL version: 18rc1
Operating system:   Operating system: centos 8,Kernel version: 5.10.13
Description:

Hi all,

I recently encountered a crash when executing a DELETE on PG18. The issue
can be reproduced on the HEAD branch with the following steps:

session1:
```sql
CREATE TABLE test_hash (
    id int,
    data text
) PARTITION BY HASH (id);

CREATE TABLE test_hash_0 PARTITION OF test_hash
    FOR VALUES WITH (MODULUS 2, REMAINDER 0);

CREATE TABLE test_hash_1 PARTITION OF test_hash
    FOR VALUES WITH (MODULUS 2, REMAINDER 1);

insert into test_hash select 1, '1';

begin ;
update test_hash set data = '2';
```

session2:
```sql
set plan_cache_mode to force_generic_plan;
prepare s as delete from test_hash  where id = $1;
execute s(1);
```

session1:
```sql
commit;
```

The following stack trace was observed:
```
(gdb) bt 10
#0  0x000000000079de74 in list_nth (list=0x0, n=0) at
../../../src/include/nodes/pg_list.h:301
#1  0x00000000007a0eeb in ExecInitPartitionExecPruning (planstate=0x1884f40,
n_total_subplans=2, part_prune_index=0,
    relids=0x18720a8, initially_valid_subplans=0x7ffc6d56b198) at
execPartition.c:1891
#2  0x00000000007bc8d0 in ExecInitAppend (node=0x1863bb0, estate=0x1884ca0,
eflags=0) at nodeAppend.c:147
#3  0x00000000007a2300 in ExecInitNode (node=0x1863bb0, estate=0x1884ca0,
eflags=0) at execProcnode.c:182
#4  0x000000000079af67 in EvalPlanQualStart (epqstate=0x186adf8,
planTree=0x1863bb0) at execMain.c:3143
#5  0x000000000079a8ab in EvalPlanQualBegin (epqstate=0x186adf8) at
execMain.c:2930
#6  0x00000000007e18e1 in ExecDelete (context=0x7ffc6d56b480,
resultRelInfo=0x186af20, tupleid=0x7ffc6d56b402,
    oldtuple=0x0, processReturning=true, changingPart=false, canSetTag=true,
tmresult=0x0, tupleDeleted=0x0,
    epqreturnslot=0x0) at nodeModifyTable.c:1709
#7  0x00000000007e61e2 in ExecModifyTable (pstate=0x186ad10) at
nodeModifyTable.c:4518
#8  0x00000000007a29a1 in ExecProcNodeFirst (node=0x186ad10) at
execProcnode.c:469
#9  0x00000000007959cb in ExecProcNode (node=0x186ad10) at
../../../src/include/executor/executor.h:316
```

Likely cause: EvalPlanQualStart creates a new EState without setting
es_part_prune_infos.


Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 03:25, PG Bug reporting form
<noreply@postgresql.org> wrote:
> I recently encountered a crash when executing a DELETE on PG18. The issue
> can be reproduced on the HEAD branch with the following steps:

Thanks for the report.

The first bad commit is:

commit bb3ec16e14ded1d23a46d3c7e623a965164fa124
Author: Amit Langote <amitlan@postgresql.org>
Date:   Thu Jan 30 11:57:32 2025 +0900

    Move PartitionPruneInfo out of plan nodes into PlannedStmt

David



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 09:43, David Rowley <dgrowleyml@gmail.com> wrote:
> The first bad commit is:
>
> commit bb3ec16e14ded1d23a46d3c7e623a965164fa124
> Author: Amit Langote <amitlan@postgresql.org>
> Date:   Thu Jan 30 11:57:32 2025 +0900
>
>     Move PartitionPruneInfo out of plan nodes into PlannedStmt

I think the attached is the correct fix.  I also wonder if it's worth
an isolation test to exercise this code.

David

Вложения

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 7:32 AM David Rowley <dgrowleyml@gmail.com> wrote:
> On Thu, 18 Sept 2025 at 09:43, David Rowley <dgrowleyml@gmail.com> wrote:
> > The first bad commit is:
> >
> > commit bb3ec16e14ded1d23a46d3c7e623a965164fa124
> > Author: Amit Langote <amitlan@postgresql.org>
> > Date:   Thu Jan 30 11:57:32 2025 +0900
> >
> >     Move PartitionPruneInfo out of plan nodes into PlannedStmt
>
> I think the attached is the correct fix.  I also wonder if it's worth
> an isolation test to exercise this code.

Thanks for the patch, David, and for the report, Fei.  I indeed forgot
to update EvalPlanQualStart() in that commit.

I agree about adding an isolation test, which I have done in the
attached updated patch.

--
Thanks, Amit Langote

Вложения

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
feichanghong
Дата:


On Sep 18, 2025, at 09:33, Amit Langote <amitlangote09@gmail.com> wrote:

On Thu, Sep 18, 2025 at 7:32 AM David Rowley <dgrowleyml@gmail.com> wrote:
On Thu, 18 Sept 2025 at 09:43, David Rowley <dgrowleyml@gmail.com> wrote:
The first bad commit is:

commit bb3ec16e14ded1d23a46d3c7e623a965164fa124
Author: Amit Langote <amitlan@postgresql.org>
Date:   Thu Jan 30 11:57:32 2025 +0900

   Move PartitionPruneInfo out of plan nodes into PlannedStmt

I think the attached is the correct fix.  I also wonder if it's worth
an isolation test to exercise this code.

Thanks for the patch, David, and for the report, Fei.  I indeed forgot
to update EvalPlanQualStart() in that commit.

I agree about adding an isolation test, which I have done in the
attached updated patch.

Thanks David and Amit for the patch. It looks OK to me, and isolation
testing confirms the issue. Also, should s1ppx and s2ppx in the case be
renamed to s4ppx and s5ppx?

Best Regards,
Fei Changhong

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 10:58 feichanghong <feichanghong@qq.com> wrote:


On Sep 18, 2025, at 09:33, Amit Langote <amitlangote09@gmail.com> wrote:

On Thu, Sep 18, 2025 at 7:32 AM David Rowley <dgrowleyml@gmail.com> wrote:
On Thu, 18 Sept 2025 at 09:43, David Rowley <dgrowleyml@gmail.com> wrote:
The first bad commit is:

commit bb3ec16e14ded1d23a46d3c7e623a965164fa124
Author: Amit Langote <amitlan@postgresql.org>
Date:   Thu Jan 30 11:57:32 2025 +0900

   Move PartitionPruneInfo out of plan nodes into PlannedStmt

I think the attached is the correct fix.  I also wonder if it's worth
an isolation test to exercise this code.

Thanks for the patch, David, and for the report, Fei.  I indeed forgot
to update EvalPlanQualStart() in that commit.

I agree about adding an isolation test, which I have done in the
attached updated patch.

Thanks David and Amit for the patch. It looks OK to me, and isolation
testing confirms the issue. Also, should s1ppx and s2ppx in the case be
renamed to s4ppx and s5ppx?

Good catch, you are right, will fix. Thanks.

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 12:10 PM Amit Langote <amitlangote09@gmail.com> wrote:
> On Thu, Sep 18, 2025 at 10:58 feichanghong <feichanghong@qq.com> wrote:
>> On Sep 18, 2025, at 09:33, Amit Langote <amitlangote09@gmail.com> wrote:
>> On Thu, Sep 18, 2025 at 7:32 AM David Rowley <dgrowleyml@gmail.com> wrote:
>> On Thu, 18 Sept 2025 at 09:43, David Rowley <dgrowleyml@gmail.com> wrote:
>>
>> The first bad commit is:
>>
>> commit bb3ec16e14ded1d23a46d3c7e623a965164fa124
>> Author: Amit Langote <amitlan@postgresql.org>
>> Date:   Thu Jan 30 11:57:32 2025 +0900
>>
>>    Move PartitionPruneInfo out of plan nodes into PlannedStmt
>>
>> I think the attached is the correct fix.  I also wonder if it's worth
>> an isolation test to exercise this code.
>>
>> Thanks for the patch, David, and for the report, Fei.  I indeed forgot
>> to update EvalPlanQualStart() in that commit.
>>
>> I agree about adding an isolation test, which I have done in the
>> attached updated patch.
>>
>> Thanks David and Amit for the patch. It looks OK to me, and isolation
>> testing confirms the issue. Also, should s1ppx and s2ppx in the case be
>> renamed to s4ppx and s5ppx?
>
> Good catch, you are right, will fix. Thanks.

Fixed.  Will push this barring objections.

--
Thanks, Amit Langote

Вложения

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 15:37, Amit Langote <amitlangote09@gmail.com> wrote:
> Fixed.  Will push this barring objections.

Thanks for adding the test case.

> +# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
> +# Bug #19056

I don't think it's that useful to note down the bug number that caused
that test to be added. I think it'd be better to write something like:

"Exercise run-time partition pruning code in an EPQ plan"

If someone really wants to know why the test was added, git blame
linking back to the discussion in the commit message is the normal
workflow.

David



David Rowley <dgrowleyml@gmail.com> writes:
> On Thu, 18 Sept 2025 at 15:37, Amit Langote <amitlangote09@gmail.com> wrote:
>> +# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
>> +# Bug #19056

> I don't think it's that useful to note down the bug number that caused
> that test to be added.

We're inconsistent about whether we do that or not, but it's
far from un-heard-of.  I just today pushed a patch in which
I did mention the bug# in the test case [1], and I did so
mostly because the adjacent test case had a similar comment.
So I see no reason to object to Amit's usage.

> I think it'd be better to write something like:
> "Exercise run-time partition pruning code in an EPQ plan"

Not expressing an opinion about whether that's better or
worse than Amit's lede.

            regards, tom lane

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=b0cc0a71e0a0a760f54c72edb8cd000e4555442b



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 16:11, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> David Rowley <dgrowleyml@gmail.com> writes:
> > I don't think it's that useful to note down the bug number that caused
> > that test to be added.
>
> We're inconsistent about whether we do that or not, but it's
> far from un-heard-of.  I just today pushed a patch in which
> I did mention the bug# in the test case [1], and I did so
> mostly because the adjacent test case had a similar comment.
> So I see no reason to object to Amit's usage.

The issue was introduced in v18 dev cycle, so it's never been a
problem in any production build of Postgres. I could get more on board
with an argument for noting these down if it were some long-standing
well known issue that had been around for several years which we
debated how to fix, and finally did.  This isn't that, so IMO, noting
down the bug number is pretty pointless.

David



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 16:19, David Rowley <dgrowleyml@gmail.com> wrote:
>
> On Thu, 18 Sept 2025 at 16:11, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > We're inconsistent about whether we do that or not, but it's
> > far from un-heard-of.  I just today pushed a patch in which
> > I did mention the bug# in the test case [1], and I did so
> > mostly because the adjacent test case had a similar comment.
> > So I see no reason to object to Amit's usage.
>
> The issue was introduced in v18 dev cycle, so it's never been a
> problem in any production build of Postgres. I could get more on board
> with an argument for noting these down if it were some long-standing
> well known issue that had been around for several years which we
> debated how to fix, and finally did.  This isn't that, so IMO, noting
> down the bug number is pretty pointless.

Just further to that, while I'm on a rant.  It's just not a
sustainable practice to note down the bug numbers. If we did that for
every fix the code and tests would be strewn with random and pretty
meaningless bug numbers. It wouldn't inspire much confidence to the
casual reader of the code either as it would appear mostly to be a
patchwork of fixes. We do have a reputation for good quality. I don't
think we need to put up signs anywhere that indicate mistakes once
existed here, especially for ones that existed in no released version
of PostgreSQL.

David



David Rowley <dgrowleyml@gmail.com> writes:
> ... I don't
> think we need to put up signs anywhere that indicate mistakes once
> existed here, especially for ones that existed in no released version
> of PostgreSQL.

I'm a bit bemused by that viewpoint.  There's an enormous fraction of
our test suite that is exactly memorializing bugs that once existed.
Maybe there is some reason to distinguish bugs that never made it
into an official release, but that seems rather weak to me.

            regards, tom lane



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 1:11 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> David Rowley <dgrowleyml@gmail.com> writes:
> > On Thu, 18 Sept 2025 at 15:37, Amit Langote <amitlangote09@gmail.com> wrote:
> >> +# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
> >> +# Bug #19056
>
> > I don't think it's that useful to note down the bug number that caused
> > that test to be added.
>
> We're inconsistent about whether we do that or not, but it's
> far from un-heard-of.  I just today pushed a patch in which
> I did mention the bug# in the test case [1], and I did so
> mostly because the adjacent test case had a similar comment.
> So I see no reason to object to Amit's usage.

I was just mimicking a few other "cf bug #" mentions in
eval-plan-qual.spec, but I'm fine to take it out if we'd prefer to
reduce that.  Git blame is enough.

> > I think it'd be better to write something like:
> > "Exercise run-time partition pruning code in an EPQ plan"
>
> Not expressing an opinion about whether that's better or
> worse than Amit's lede.

What I added is:

# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()

I'm fine to change the comment to David's suggestion since that makes
the test description less narrowly tied to one fix of one specific
issue in that path.

--
Thanks, Amit Langote



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 16:38, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> David Rowley <dgrowleyml@gmail.com> writes:
> > ... I don't
> > think we need to put up signs anywhere that indicate mistakes once
> > existed here, especially for ones that existed in no released version
> > of PostgreSQL.
>
> I'm a bit bemused by that viewpoint.  There's an enormous fraction of
> our test suite that is exactly memorializing bugs that once existed.
> Maybe there is some reason to distinguish bugs that never made it
> into an official release, but that seems rather weak to me.

Not intending to sound nasty here, but if you're going to convince me
that I'm off track in my line of thought, it's going to have to be
something more convincing than "I just did this today mostly because I
copied an existing adjacent test case".

In my view, the only sense in writing down bug numbers in tests or
code is if there's some chance that we might get tricked into putting
it back the broken way again. Otherwise they just act as tombstones to
the should-be-forgotten past. It's hard to imagine someone being
convinced to rebreak this issue and delete Amit's new test.
Segfaulting is clearly wrong behaviour. Nobody will be convinced
otherwise.

David



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 1:56 PM Amit Langote <amitlangote09@gmail.com> wrote:
> On Thu, Sep 18, 2025 at 1:11 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >
> > David Rowley <dgrowleyml@gmail.com> writes:
> > > On Thu, 18 Sept 2025 at 15:37, Amit Langote <amitlangote09@gmail.com> wrote:
> > >> +# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
> > >> +# Bug #19056
> >
> > > I don't think it's that useful to note down the bug number that caused
> > > that test to be added.
> >
> > We're inconsistent about whether we do that or not, but it's
> > far from un-heard-of.  I just today pushed a patch in which
> > I did mention the bug# in the test case [1], and I did so
> > mostly because the adjacent test case had a similar comment.
> > So I see no reason to object to Amit's usage.
>
> I was just mimicking a few other "cf bug #" mentions in
> eval-plan-qual.spec, but I'm fine to take it out if we'd prefer to
> reduce that.  Git blame is enough.
>
> > > I think it'd be better to write something like:
> > > "Exercise run-time partition pruning code in an EPQ plan"
> >
> > Not expressing an opinion about whether that's better or
> > worse than Amit's lede.
>
> What I added is:
>
> # Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
>
> I'm fine to change the comment to David's suggestion since that makes
> the test description less narrowly tied to one fix of one specific
> issue in that path.

Patch updated.

--
Thanks, Amit Langote

Вложения

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
feichanghong
Дата:

On Sep 18, 2025, at 14:09, Amit Langote <amitlangote09@gmail.com> wrote:

On Thu, Sep 18, 2025 at 1:56 PM Amit Langote <amitlangote09@gmail.com> wrote:
On Thu, Sep 18, 2025 at 1:11 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

David Rowley <dgrowleyml@gmail.com> writes:
On Thu, 18 Sept 2025 at 15:37, Amit Langote <amitlangote09@gmail.com> wrote:
+# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
+# Bug #19056

I don't think it's that useful to note down the bug number that caused
that test to be added.

We're inconsistent about whether we do that or not, but it's
far from un-heard-of.  I just today pushed a patch in which
I did mention the bug# in the test case [1], and I did so
mostly because the adjacent test case had a similar comment.
So I see no reason to object to Amit's usage.

I was just mimicking a few other "cf bug #" mentions in
eval-plan-qual.spec, but I'm fine to take it out if we'd prefer to
reduce that.  Git blame is enough.

I think it'd be better to write something like:
"Exercise run-time partition pruning code in an EPQ plan"

Not expressing an opinion about whether that's better or
worse than Amit's lede.

What I added is:

# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()

I'm fine to change the comment to David's suggestion since that makes
the test description less narrowly tied to one fix of one specific
issue in that path.

Patch updated.
+# EState.es_part_prune_infos bug #19056

There is still bug #19056 here.

Best Regards,
Fei Changhong

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 3:15 PM feichanghong <feichanghong@qq.com> wrote:
> On Sep 18, 2025, at 14:09, Amit Langote <amitlangote09@gmail.com> wrote:
>
> On Thu, Sep 18, 2025 at 1:56 PM Amit Langote <amitlangote09@gmail.com> wrote:
>
> On Thu, Sep 18, 2025 at 1:11 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
>
> David Rowley <dgrowleyml@gmail.com> writes:
>
> On Thu, 18 Sept 2025 at 15:37, Amit Langote <amitlangote09@gmail.com> wrote:
>
> +# Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
> +# Bug #19056
>
>
> I don't think it's that useful to note down the bug number that caused
> that test to be added.
>
>
> We're inconsistent about whether we do that or not, but it's
> far from un-heard-of.  I just today pushed a patch in which
> I did mention the bug# in the test case [1], and I did so
> mostly because the adjacent test case had a similar comment.
> So I see no reason to object to Amit's usage.
>
>
> I was just mimicking a few other "cf bug #" mentions in
> eval-plan-qual.spec, but I'm fine to take it out if we'd prefer to
> reduce that.  Git blame is enough.
>
> I think it'd be better to write something like:
> "Exercise run-time partition pruning code in an EPQ plan"
>
>
> Not expressing an opinion about whether that's better or
> worse than Amit's lede.
>
>
> What I added is:
>
> # Test that EState.es_part_prune_infos is properly set in EvalPlanQualStart()
>
> I'm fine to change the comment to David's suggestion since that makes
> the test description less narrowly tied to one fix of one specific
> issue in that path.
>
>
> Patch updated.
>
> +# EState.es_part_prune_infos bug #19056

Oops, coffee deficiency.  Updated again.

--
Thanks, Amit Langote

Вложения

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 18:20, Amit Langote <amitlangote09@gmail.com> wrote:
> Oops, coffee deficiency.  Updated again.

Thanks for updating the patch.

I think the original intent of "Parsed test spec with 3 sessions"
(from 759d9d676) was two sessions doing work, and an independent
observer session. Is there a reason to add 2 more sessions? Maybe it's
me not working with the isolation tester often enough, but I'd have
expected you to add steps for s1 and s2 then define permutations for
those steps.

David



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Thu, Sep 18, 2025 at 4:06 PM David Rowley <dgrowleyml@gmail.com> wrote:
>
> On Thu, 18 Sept 2025 at 18:20, Amit Langote <amitlangote09@gmail.com> wrote:
> > Oops, coffee deficiency.  Updated again.
>
> Thanks for updating the patch.
>
> I think the original intent of "Parsed test spec with 3 sessions"
> (from 759d9d676) was two sessions doing work, and an independent
> observer session. Is there a reason to add 2 more sessions? Maybe it's
> me not working with the isolation tester often enough, but I'd have
> expected you to add steps for s1 and s2 then define permutations for
> those steps.

Yeah, that makes the additions smaller and avoids slowing down the
suite. It did take a bit of fiddling though -- after switching to use
the existing sessions, teardown in s1 hung because I hadn’t noticed
that s2’s setup already does a BEGIN, so the delete side ended up
without a COMMIT, leaving an open transaction that blocked DROP in
s1’s teardown.  Easier to take shortcuts with new sessions like I
first did, but better to keep the suite light. :-)

Done in the attached.

--
Thanks, Amit Langote

Вложения

Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
David Rowley
Дата:
On Thu, 18 Sept 2025 at 20:25, Amit Langote <amitlangote09@gmail.com> wrote:
>
> On Thu, Sep 18, 2025 at 4:06 PM David Rowley <dgrowleyml@gmail.com> wrote:
> > I think the original intent of "Parsed test spec with 3 sessions"
> > (from 759d9d676) was two sessions doing work, and an independent
> > observer session. Is there a reason to add 2 more sessions? Maybe it's
> > me not working with the isolation tester often enough, but I'd have
> > expected you to add steps for s1 and s2 then define permutations for
> > those steps.
>
> Yeah, that makes the additions smaller and avoids slowing down the
> suite. It did take a bit of fiddling though -- after switching to use
> the existing sessions, teardown in s1 hung because I hadn’t noticed
> that s2’s setup already does a BEGIN, so the delete side ended up
> without a COMMIT, leaving an open transaction that blocked DROP in
> s1’s teardown.  Easier to take shortcuts with new sessions like I
> first did, but better to keep the suite light. :-)
>
> Done in the attached.

Thanks for updating. Looks good.  I verified the test fails with the
code change reverted and passes with the change.

David



Re: BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos

От
Amit Langote
Дата:
On Fri, Sep 19, 2025 at 11:05 AM David Rowley <dgrowleyml@gmail.com> wrote:
> On Thu, 18 Sept 2025 at 20:25, Amit Langote <amitlangote09@gmail.com> wrote:
> >
> > On Thu, Sep 18, 2025 at 4:06 PM David Rowley <dgrowleyml@gmail.com> wrote:
> > > I think the original intent of "Parsed test spec with 3 sessions"
> > > (from 759d9d676) was two sessions doing work, and an independent
> > > observer session. Is there a reason to add 2 more sessions? Maybe it's
> > > me not working with the isolation tester often enough, but I'd have
> > > expected you to add steps for s1 and s2 then define permutations for
> > > those steps.
> >
> > Yeah, that makes the additions smaller and avoids slowing down the
> > suite. It did take a bit of fiddling though -- after switching to use
> > the existing sessions, teardown in s1 hung because I hadn’t noticed
> > that s2’s setup already does a BEGIN, so the delete side ended up
> > without a COMMIT, leaving an open transaction that blocked DROP in
> > s1’s teardown.  Easier to take shortcuts with new sessions like I
> > first did, but better to keep the suite light. :-)
> >
> > Done in the attached.
>
> Thanks for updating. Looks good.  I verified the test fails with the
> code change reverted and passes with the change.

Thanks for checking, pushed.

--
Thanks, Amit Langote