Re: postgres crash on concurrent update of inheritance partitioned table

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Oleksii Kliukin <alexk(at)hintbits(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org, ildus(at)adjust(dot)com, Chris Travers <chris(dot)travers(at)adjust(dot)com>, Nick Babadzhanian <nickb(at)adjust(dot)com>, julian(dot)schauder(at)gmx(dot)de
Subject: Re: postgres crash on concurrent update of inheritance partitioned table
Date: 2020-01-28 22:29:59
Message-ID: 29583.1580250599@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)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(at)anarazel(dot)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.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kyotaro Horiguchi 2020-01-29 03:02:22 Don't try fetching future segment of a TLI.
Previous Message Darryl Snover 2020-01-28 18:30:12 Re: BUG #16237: When restoring database, backend disconnects or crashes when foreign key is created