autovacuum_naptime_overflow.patch
application/octet-stream
Filename: autovacuum_naptime_overflow.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/postmaster/autovacuum.c | 10 | 2 |
| src/backend/utils/misc/guc.c | 1 | 1 |
Index: src/backend/postmaster/autovacuum.c
===================================================================
--- src/backend/postmaster/autovacuum.c (HEAD)
+++ src/backend/postmaster/autovacuum.c (autovacuum_naptime_overflow)
@@ -502,7 +502,15 @@
INVALID_OFFSET, false);
/* Sleep for a while according to schedule */
- pg_usleep(micros);
+ while (micros >= 10000000L)
+ {
+ if (got_SIGHUP || avlauncher_shutdown_request)
+ break;
+ pg_usleep(10000000L);
+ micros -= 10000000L;
+ }
+ if (!(got_SIGHUP || avlauncher_shutdown_request))
+ pg_usleep(micros);
/* the normal shutdown case */
if (avlauncher_shutdown_request)
@@ -709,7 +717,7 @@
usecs = 100000; /* 100 ms */
}
- return secs * 1000000 + usecs;
+ return (uint64) secs * 1000000 + usecs;
}
/*
Index: src/backend/utils/misc/guc.c
===================================================================
--- src/backend/utils/misc/guc.c (HEAD)
+++ src/backend/utils/misc/guc.c (autovacuum_naptime_overflow)
@@ -1645,7 +1645,7 @@
GUC_UNIT_S
},
&autovacuum_naptime,
- 60, 1, INT_MAX, NULL, NULL
+ 60, 1, INT_MAX / 1000, NULL, NULL
},
{
{"autovacuum_vacuum_threshold", PGC_SIGHUP, AUTOVACUUM,