Re: postgres crash on concurrent update of inheritance partitioned table
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>, Oleksii Kliukin <alexk@hintbits.com>, pgsql-bugs@lists.postgresql.org, ildus@adjust.com, Chris Travers <chris.travers@adjust.com>, Nick Babadzhanian <nickb@adjust.com>, julian.schauder@gmx.de
Date: 2020-02-03T06:23:14Z
Lists: pgsql-bugs
Hi, On 2020-01-28 17:29:59 -0500, Tom Lane wrote: > Tomas Vondra <tomas.vondra@2ndquadrant.com> writes: > > On Tue, Jan 28, 2020 at 05:17:14PM +0100, Oleksii Kliukin wrote: > >> We have experienced a few crashes a day since upgrading to pg 12.1 last > >> week, during the process of updating an inheritance-partitioned table by > >> several concurrent sessions. > > > Yeah, I can reproduce it too. If I had to guess, I'd say it's another > > bug due to > > commit 3fb307bc4a76815f96fec28a0d1525ab3fbbcfb4 > > Author: Andres Freund <andres@anarazel.de> > > Date: Mon Sep 9 05:21:30 2019 -0700 > > Reorder EPQ work, to fix rowmark related bugs and improve efficiency. > > which introduced relsubs_done et al, and perhaps did not get the life > > cycle / resetting right. Not sure. > > Yup, that's it exactly. EvalPlanQualStart was expecting to reuse > relsubs_rowmark and relsubs_done, but that storage will be recycled by > EvalPlanQualEnd because it's in the query context of the recheckestate. > AFAICS the re-use has no semantic value, so I just got rid of it. Thanks! Greetings, Andres Freund
Commits
-
Fix dangling pointer in EvalPlanQual machinery.
- 87fed2a197ab 12.2 landed
- 01d9676a53af 13.0 landed
-
Reorder EPQ work, to fix rowmark related bugs and improve efficiency.
- 3fb307bc4a76 12.0 cited