I wrote:
> I count three distinct bugs that were exposed by this attempt:
> ...
> 2. Said bug causes a segfault in the apply worker process.
> This causes the parent postmaster to give up and die.
> I don't understand why we don't treat that like a crash
> in a regular backend, considering that an apply worker
> is running largely user-defined code.
Figured that one out: we *do* treat it like a crash in a regular
backend, which explains the lack of field complaints. What's
contributing to the TAP test getting stuck is that PostgresNode.pm
does this:
open my $conf, '>>', "$pgdata/postgresql.conf";
print $conf "\n# Added by PostgresNode.pm\n";
...
print $conf "restart_after_crash = off\n";
So that'd be fine, if only the TAP tests were a bit more robust
about postmasters disappearing unexpectedly.
BTW, I wonder whether it wouldn't be a good idea for the
postmaster to log something along the lines of "stopping
because restart_after_crash is off". The present behavior
can be quite mysterious otherwise (it certainly confused me).
regards, tom lane