Index: src/backend/postmaster/autovacuum.c =================================================================== --- src/backend/postmaster/autovacuum.c (HEAD) +++ src/backend/postmaster/autovacuum.c (DEBUG) @@ -899,6 +899,7 @@ current_time = TimestampTzPlusMilliseconds(current_time, millis_increment); db->adl_next_worker = current_time; + elog(LOG, "rebuild_database_list: db=%u, time=%f", db->adl_datid, db->adl_next_worker); elem = DLNewElem(db); /* later elements should go closer to the head of the list */ @@ -1049,11 +1050,20 @@ * the current time and the current time plus naptime. */ if (timestamp_cmp_internal(current_time, next) > 0) + { + elog(LOG, "do_start_worker ok1 : %f > %f", current_time, next); skipit = false; + } else if (timestamp_cmp_internal(next, curr_plus_naptime) > 0) + { + elog(LOG, "do_start_worker ok2 : %f > %f", next, curr_plus_naptime); skipit = false; + } else + { + elog(LOG, "do_start_worker skip : %f, %f, %f", current_time, next, curr_plus_naptime); skipit = true; + } break; } @@ -1152,6 +1162,7 @@ */ avdb->adl_next_worker = TimestampTzPlusMilliseconds(now, autovacuum_naptime * 1000); + elog(LOG, "launch_worker: db=%u, time=%f", avdb->adl_datid, avdb->adl_next_worker); DLMoveToFront(elem); break;