Re: when the startup process doesn't (logging startup delays)

Nitin Jadhav <nitinjadhavpostgres@gmail.com>

From: Nitin Jadhav <nitinjadhavpostgres@gmail.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Andres Freund <andres@anarazel.de>, Stephen Frost <sfrost@snowman.net>, Magnus Hagander <magnus@hagander.net>, Thomas Munro <thomas.munro@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2021-06-21T06:36:30Z
Lists: pgsql-hackers

Attachments

> What is DUMMY about ?  If you just want to separate the "start" from "end",
> you could write:
>
> /* codes for start of operations */
> FSYNC_IN_PROGRESS
> SYNCFS_IN_PROGRESS
> ...
> /* codes for end of operations */
> FSYNC_END
> SYNCFS_END
> ...

That was by mistake and I have corrected it in the attached patch.

Thanks & Regards,
Nitin Jadhav

On Thu, Jun 17, 2021 at 6:22 PM Justin Pryzby <pryzby@telsasoft.com> wrote:
>
> + * Codes of the operations performed during startup process
> + */
> +typedef enum StartupProcessOp
> +{
> +       SYNCFS_IN_PROGRESS,
> +       FSYNC_IN_PROGRESS,
> +       RECOVERY_IN_PROGRESS,
> +       RESET_UNLOGGED_REL_IN_PROGRESS,
> +       DUMMY,
> +       SYNCFS_END,
> +       FSYNC_END,
> +       RECOVERY_END,
> +       RESET_UNLOGGED_REL_END
> +} StartupProcessOp;
>
> What is DUMMY about ?  If you just want to separate the "start" from "end",
> you could write:
>
> /* codes for start of operations */
> FSYNC_IN_PROGRESS
> SYNCFS_IN_PROGRESS
> ...
> /* codes for end of operations */
> FSYNC_END
> SYNCFS_END
> ...
>
> Or group them together like:
>
> FSYNC_IN_PROGRESS,
> FSYNC_END,
> SYNCFS_IN_PROGRESS,
> SYNCFS_END,
> RECOVERY_IN_PROGRESS,
> RECOVERY_END,
> RESET_UNLOGGED_REL_IN_PROGRESS,
> RESET_UNLOGGED_REL_END,
>
> --
> Justin

Commits

  1. Un-revert "Disable STARTUP_PROGRESS_TIMEOUT in standby mode."

  2. Revert "Disable STARTUP_PROGRESS_TIMEOUT in standby mode."

  3. Disable STARTUP_PROGRESS_TIMEOUT in standby mode.

  4. Fix race condition in startup progress reporting.

  5. Report progress of startup operations that take a long time.

  6. Add enable_timeout_every() to fire the same timeout repeatedly.