report_autovac_workitem_request_failure.patch
application/octet-stream
Filename: report_autovac_workitem_request_failure.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/postmaster/autovacuum.c | 7 | 0 |
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index 75c2362..f322bd6 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -3199,6 +3199,7 @@ AutoVacuumRequestWork(AutoVacuumWorkItemType type, Oid relationId,
BlockNumber blkno)
{
int i;
+ bool requested = false;
LWLockAcquire(AutovacuumLock, LW_EXCLUSIVE);
@@ -3218,11 +3219,17 @@ AutoVacuumRequestWork(AutoVacuumWorkItemType type, Oid relationId,
workitem->avw_database = MyDatabaseId;
workitem->avw_relation = relationId;
workitem->avw_blockNumber = blkno;
+ requested = true;
/* done */
break;
}
+ if (!requested)
+ ereport(LOG, (errcode(ERRCODE_CONFIGURATION_LIMIT_EXCEEDED),
+ errmsg("could not request an autovacuum work item %d for OID %u",
+ type, relationId)));
+
LWLockRelease(AutovacuumLock);
}