Re: FOR [SHARE|UPDATE] NOWAIT may still block in EvalPlanQualFetch

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Craig Ringer <craig(at)2ndquadrant(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: FOR [SHARE|UPDATE] NOWAIT may still block in EvalPlanQualFetch
Date: 2014-01-31 21:28:08
Message-ID: 20140131212808.GR19957@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Aug 2, 2013 at 04:00:03PM +0800, Craig Ringer wrote:
> FOR SHARE|UPDATE NOWAIT will still block if they have to follow a ctid
> chain because the call to EvalPlanQualFetch doesn't take a param for
> noWait, so it doesn't know not to block if the updated row can't be locked.
>
> The attached patch against master includes an isolationtester spec to
> demonstrate this issue and a proposed fix. Builds with the fix applied
> pass "make check" and isolationtester "make installcheck".
>
> To reach this point you need to apply the patch in
> http://www.postgresql.org/message-id/51FB4305.3070600@2ndquadrant.com
> first, otherwise you'll get stuck there and won't touch the code changed
> in this patch.

The above looks like a legitimate patch that was not applied:

http://www.postgresql.org/message-id/51FB6703.9090801@2ndquadrant.com

The patch mentioned in the text above was applied, I think.

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ Everyone has their own god. +

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2014-01-31 21:37:41 Re: FOR UPDATE/SHARE incompatibility with GROUP BY, DISTINCT, HAVING and window functions
Previous Message Tom Lane 2014-01-31 21:11:51 Re: Recovery inconsistencies, standby much larger than primary