Content-Length: 270508 | pFad | http://github.com/postgrespro/postgres/commit/dbf3f974ee04d24547690268b1fc2b7eb12b4ebc

10 Warn if LOCKTAG_TUPLE is held at commit, under debug_assertions. · postgrespro/postgres@dbf3f97 · GitHub
Skip to content

Commit dbf3f97

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 ac30021 commit dbf3f97

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
@@ -2305,6 +2305,16 @@ LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks)
23052305
locallock->numLockOwners = 0;
23062306
}
23072307

2308+
#ifdef USE_ASSERT_CHECKING
2309+
2310+
/*
2311+
* Tuple locks are currently held only for short durations within a
2312+
* transaction. Check that we didn't forget to release one.
2313+
*/
2314+
if (LOCALLOCK_LOCKTAG(*locallock) == LOCKTAG_TUPLE && !allLocks)
2315+
elog(WARNING, "tuple lock held at commit");
2316+
#endif
2317+
23082318
/*
23092319
* If the lock or proclock pointers are NULL, this lock was taken via
23102320
* the relation fast-path (and is not known to have been transferred).

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/dbf3f974ee04d24547690268b1fc2b7eb12b4ebc

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy