Re: Buildfarm failure and dubious coding in predicate.c
Thomas Munro <thomas.munro@enterprisedb.com>
From: Thomas Munro <thomas.munro@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2017-07-24T19:27:29Z
Lists: pgsql-hackers
On Tue, Jul 25, 2017 at 7:24 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Thomas Munro <thomas.munro@enterprisedb.com> writes: >> Ahh, I think I see it. This is an EXEC_BACKEND build farm animal. >> Theory: After the backend we see had removed the scratch entry and >> before it had restored it, another backend started up and ran >> InitPredicateLocks(), which inserted a new scratch entry without >> interlocking. > > Ouch. Yes, I think you're probably right. It needs to skip that if > IsUnderPostmaster. Seems like there ought to be an Assert(!found) > there, too. And I don't think I entirely like the fact that there's > no assertions about the found/not found cases below, either. > > Will fix, unless you're already on it? I was going to send a short patch that would test IsUnderPostmaster, but I got lost down a rabbit hole trying to figure out how to make my EXEC_BACKEND builds run on this machine... Please go ahead. -- Thomas Munro http://www.enterprisedb.com
Commits
-
Fix race condition in predicate-lock init code in EXEC_BACKEND builds.
- 51865a0a0141 9.6.4 landed
- e2c8100e6072 10.0 landed
- 4ecee1192a02 9.3.18 landed
- 05a562d9cefc 9.2.22 landed
- 8ad35c7fa67d 9.4.13 landed
- 5146ca3525a8 9.5.8 landed
-
Improve comments about partitioned hash table freelists.
- ab2324fd468c 10.0 landed