| From: | Andrey Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru> |
|---|---|
| To: | PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
| Cc: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
| Subject: | SEGFAULT on a concurrent UPDATE of mix of local and foreign partitions |
| Date: | 2021-08-06 05:34:30 |
| Message-ID: | cb2b808d-cbaa-4772-76ee-c8809bafcf3d@postgrespro.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
Hi,
Postgres SEGFAULT'ed on the UPDATE of mix of local and foreign partitions.
Initialization - see t.sql
For replaying this segfault just execute in parallel:
UPDATE test SET x = x - 1;
The problem was introduced by commit 1375422.
ExecUpdate has found a concurrently updated tuples and starts subplan
evaluation. This operation creates new EState for EPQState and sets
es_result_relations in NULL value. Next, ExecInitNode(subplan) is
launched and underlying ExecInitForeignScan tries to access to an
element of es_result_relations. This causes SEGFAULT.
I studied this problem shortly. I think, EPQState can use
es_result_relations of a parent EState. Patch in attachment fixes this.
check-world passed clearly.
--
regards,
Andrey Lepikhov
Postgres Professional
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-Share-es_result_relations-of-parent-EState-in-EPQSta.patch | text/plain | 1.3 KB |
| t.sql | application/sql | 552 bytes |
| backtrace.txt | text/plain | 3.0 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Naomi's strings | 2021-08-06 06:47:46 | pg_stat warnings keep on printing in postgres log |
| Previous Message | Amit Kapila | 2021-08-06 05:23:55 | Re: BUG #17132: About "ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION" |