Fix race condition when sharing tuple descriptors.
authorThomas Munro <tmunro@postgresql.org>
Sat, 29 May 2021 02:48:15 +0000 (14:48 +1200)
committerThomas Munro <tmunro@postgresql.org>
Sat, 29 May 2021 03:12:34 +0000 (15:12 +1200)
commitb1d6538903504904db44679355ac109aeda01737
tree53942097e7878464f28c6e91e71f58e97817d877
parentd69fcb9caef1ac1f38241645d4fb9f7e0ce02a70
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 <e.thinnes@gmx.de>
Discussion: https://postgr.es/m/99aaa2eb-e194-bf07-c29a-1a76b4f2bcf9%40gmx.de
src/backend/utils/cache/typcache.c