Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Misch2024-11-02 16:04:56 +0000
committerNoah Misch2024-11-02 16:04:56 +0000
commit0bada39c83a150079567a6e97b1a25a198f30ea3 (patch)
tree291571016e3d1a08249f25a9eefff51a47d89ec8 /src/backend/regex/regprefix.c
parentb412f402d1e020c5dac94f3bf4a005db69519b99 (diff)
Fix inplace update buffer self-deadlock.
A CacheInvalidateHeapTuple* callee might call CatalogCacheInitializeCache(), which needs a relcache entry. Acquiring a valid relcache entry might scan pg_class. Hence, to prevent undetected LWLock self-deadlock, CacheInvalidateHeapTuple* callers must not hold BUFFER_LOCK_EXCLUSIVE on buffers of pg_class. Move the CacheInvalidateHeapTupleInplace() before the BUFFER_LOCK_EXCLUSIVE. No back-patch, since I've reverted commit 243e9b40f1b2dd09d6e5bf91ebf6e822a2cd3704 from non-master branches. Reported by Alexander Lakhin. Reviewed by Alexander Lakhin. Discussion: https://postgr.es/m/10ec0bc3-5933-1189-6bb8-5dec4114558e@gmail.com
Diffstat (limited to 'src/backend/regex/regprefix.c')
0 files changed, 0 insertions, 0 deletions