Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 5ccceb2

Browse files
committed
Fix race condition in startup progress reporting.
Commit 9ce346e added startup progress reporting, but begin_startup_progress_phase has a race condition: the timeout for the previous phase might fire just before we reschedule the interrupt for the next phase. To avoid the race, disable the timeout, clear the flag, and then re-enable the timeout. Patch by me, reviewed by Nitin Jadhav. Discussion: https://postgr.es/m/CA+TgmoYq38i6iAzfRLVxA6Cm+wMCf4WM8wC3o_a+X_JvWC8bJg@mail.gmail.com
1 parent 2f5c439 commit 5ccceb2

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/backend/postmaster/startup.c

+2
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,8 @@ begin_startup_progress_phase(void)
320320
if (log_startup_progress_interval == 0)
321321
return;
322322

323+
disable_timeout(STARTUP_PROGRESS_TIMEOUT, false);
324+
startup_progress_timer_expired = false;
323325
startup_progress_phase_start_time = GetCurrentTimestamp();
324326
fin_time = TimestampTzPlusMilliseconds(startup_progress_phase_start_time,
325327
log_startup_progress_interval);

0 commit comments

Comments
 (0)