Tom Lane escribió:
In patch 0003,
> /*
> - * Was it the archiver? If so, just try to start a new one; no need
> - * to force reset of the rest of the system. (If fail, we'll try
> - * again in future cycles of the main loop.). Unless we were waiting
> - * for it to shut down; don't restart it in that case, and
> - * PostmasterStateMachine() will advance to the next shutdown step.
> + * Was it the archiver? Normal exit can be ignored; we'll start a new
> + * one at the next iteration of the postmaster's main loop, if
> + * necessary. Any other exit condition is treated as a crash.
> */
> if (pid == PgArchPID)
> {
> PgArchPID = 0;
> if (!EXIT_STATUS_0(exitstatus))
> - LogChildExit(LOG, _("archiver process"),
> - pid, exitstatus);
> - if (PgArchStartupAllowed())
> - PgArchPID = pgarch_start();
> + HandleChildCrash(pid, exitstatus,
> + _("archiver process"));
> continue;
> }
I'm worried that we're causing all processes to terminate when an
archiver dies in some ugly way; but in the current coding, it's pretty
harmless and we'd just start a new one. I think this needs to be
reconsidered. As far as I know, pgarchiver remains unconnected to
shared memory so a crash-restart cycle is not necessary. We should
continue to just log the error message and move on.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services