From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | feichanghong(at)qq(dot)com |
Subject: | BUG #19056: ExecInitPartitionExecPruning segfault due to NULL es_part_prune_infos |
Date: | 2025-09-17 15:08:40 |
Message-ID: | 19056-a677cef9b54d76a0@postgresql.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 19056
Logged by: Fei Changhong
Email address: feichanghong(at)qq(dot)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Masahiko Sawada | 2025-09-17 16:00:36 | Re: Read Replica termination occurs when its max_active_replication_origins setting is lower than the primary |
Previous Message | PG Bug reporting form | 2025-09-17 14:34:23 | BUG #19055: Server crash at ExecInterpExpr |