From: | Josh Berkus <josh(at)agliodbs(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: assertion failure 9.3.4 |
Date: | 2014-04-22 21:40:46 |
Message-ID: | 5356E1DE.9010002@agliodbs.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 04/22/2014 02:01 PM, Alvaro Herrera wrote:
> Some testing later, I think the issue only occurs if we determine that
> we don't need to wait for the xid/multi to complete, because otherwise
> the wait itself saves us. (It's easy to cause the problem by adding a
> breakpoint in heapam.c:3325, i.e. just before re-acquiring the buffer
> lock, and then having transaction A lock for key share, then transaction
> B update the tuple which stops at the breakpoint, then transaction A
> also update the tuple, and finally release transaction B).
So, trying to make my synthetic test work:
In order to encounter this issue, I'd need to have two concurrent
processes update the child records of the same parent record? That is:
A ---> B1
\---> B2
... and the issue should only happen if I update both B1 and B2
concurrently in separate sessions?
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2014-04-22 21:42:23 | Re: assertion failure 9.3.4 |
Previous Message | Andrew Dunstan | 2014-04-22 21:36:42 | Re: assertion failure 9.3.4 |