diff options
Diffstat (limited to 'src/backend/storage/buffer/bufmgr.c')
-rw-r--r-- | src/backend/storage/buffer/bufmgr.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index ea7d469f2f4..0b4c2ed0a01 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -1699,12 +1699,18 @@ AtEOXact_Buffers(bool isCommit) #ifdef USE_ASSERT_CHECKING if (assert_enabled) { - int i; + int RefCountErrors = 0; + Buffer b; - for (i = 0; i < NBuffers; i++) + for (b = 1; b <= NBuffers; b++) { - Assert(PrivateRefCount[i] == 0); + if (PrivateRefCount[b - 1] != 0) + { + PrintBufferLeakWarning(b); + RefCountErrors++; + } } + Assert(RefCountErrors == 0); } #endif @@ -1739,12 +1745,18 @@ AtProcExit_Buffers(int code, Datum arg) #ifdef USE_ASSERT_CHECKING if (assert_enabled) { - int i; + int RefCountErrors = 0; + Buffer b; - for (i = 0; i < NBuffers; i++) + for (b = 1; b <= NBuffers; b++) { - Assert(PrivateRefCount[i] == 0); + if (PrivateRefCount[b - 1] != 0) + { + PrintBufferLeakWarning(b); + RefCountErrors++; + } } + Assert(RefCountErrors == 0); } #endif |