aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2024-11-02 09:04:56 -0700
committerNoah Misch <noah@leadboat.com>2024-11-02 09:04:56 -0700
commit0bada39c83a150079567a6e97b1a25a198f30ea3 (patch)
tree291571016e3d1a08249f25a9eefff51a47d89ec8 /doc/src
parentb412f402d1e020c5dac94f3bf4a005db69519b99 (diff)
downloadpostgresql-0bada39c83a150079567a6e97b1a25a198f30ea3.tar.gz
postgresql-0bada39c83a150079567a6e97b1a25a198f30ea3.zip
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 'doc/src')
0 files changed, 0 insertions, 0 deletions