Fix race condition when sharing tuple descriptors.
authorThomas Munro
Sat, 29 May 2021 02:48:15 +0000 (14:48 +1200)
committerThomas Munro
Sat, 29 May 2021 03:13:44 +0000 (15:13 +1200)
commitd41fda6aa3c1016ef5aedb4bf393ead81f6e3a8f
tree0f1a4cc7463f811d29089a142d038b8da98164dd
parentbb18bc2249239fff10f84c276783962d546c858a
Fix race condition when sharing tuple descriptors.

Parallel query processes that called BlessTupleDesc() for identical
tuple descriptors at the same moment could crash.  There was code to
handle that rare case, but it dereferenced a bogus DSA pointer.  Repair.

Back-patch to 11, where commit cc5f8136 added support for sharing tuple
descriptors in parallel queries.

Reported-by: Eric Thinnes
Discussion: https://postgr.es/m/99aaa2eb-e194-bf07-c29a-1a76b4f2bcf9%40gmx.de
src/backend/utils/cache/typcache.c