aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/localbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/buffer/localbuf.c')
-rw-r--r--src/backend/storage/buffer/localbuf.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c
index 30dc8098ed2..03055c96d85 100644
--- a/src/backend/storage/buffer/localbuf.c
+++ b/src/backend/storage/buffer/localbuf.c
@@ -497,14 +497,22 @@ void
AtEOXact_LocalBuffers(bool isCommit)
{
#ifdef USE_ASSERT_CHECKING
- if (assert_enabled)
+ if (assert_enabled && LocalRefCount)
{
+ int RefCountErrors = 0;
int i;
for (i = 0; i < NLocBuffer; i++)
{
- Assert(LocalRefCount[i] == 0);
+ if (LocalRefCount[i] != 0)
+ {
+ Buffer b = -i - 1;
+
+ PrintBufferLeakWarning(b);
+ RefCountErrors++;
+ }
}
+ Assert(RefCountErrors == 0);
}
#endif
}
@@ -523,12 +531,20 @@ AtProcExit_LocalBuffers(void)
#ifdef USE_ASSERT_CHECKING
if (assert_enabled && LocalRefCount)
{
+ int RefCountErrors = 0;
int i;
for (i = 0; i < NLocBuffer; i++)
{
- Assert(LocalRefCount[i] == 0);
+ if (LocalRefCount[i] != 0)
+ {
+ Buffer b = -i - 1;
+
+ PrintBufferLeakWarning(b);
+ RefCountErrors++;
+ }
}
+ Assert(RefCountErrors == 0);
}
#endif
}