Skip to content

Commit f33bf1c

Browse files
committed
Warn if LOCKTAG_TUPLE is held at commit, under debug_assertions.
The current use always releases this locktag. A planned use will continue that intent. It will involve more areas of code, making unlock omissions easier. Warn under debug_assertions, like we do for various resource leaks. Back-patch to v12 (all supported versions), the plan for the commit of the new use. Reviewed by Heikki Linnakangas. Discussion: https://postgr.es/m/20240512232923.aa.nmisch@google.com
1 parent 923a715 commit f33bf1c

File tree

1 file changed

+10
-0
lines changed
  • src/backend/storage/lmgr

1 file changed

+10
-0
lines changed

src/backend/storage/lmgr/lock.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2256,6 +2256,16 @@ LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks)
22562256
locallock->numLockOwners = 0;
22572257
}
22582258

2259+
#ifdef USE_ASSERT_CHECKING
2260+
2261+
/*
2262+
* Tuple locks are currently held only for short durations within a
2263+
* transaction. Check that we didn't forget to release one.
2264+
*/
2265+
if (LOCALLOCK_LOCKTAG(*locallock) == LOCKTAG_TUPLE && !allLocks)
2266+
elog(WARNING, "tuple lock held at commit");
2267+
#endif
2268+
22592269
/*
22602270
* If the lock or proclock pointers are NULL, this lock was taken via
22612271
* the relation fast-path (and is not known to have been transferred).

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy