Viktor Dukhovni:
> On Wed, Jan 26, 2022 at 11:22:53AM -0500, Wietse Venema wrote:
>
> > Sorry, master -w" DOES fork (it's re-implemented with clone() on LINUX).
> >
> > -w Wait in a dummy foreground process, while the real master daemon
> > initializes in a background process. The dummy foreground
> > process returns a zero exit status only if the master daemon
> > initialization is successful, and if it completes in a reason-
> > able amount of time.
>
> Indeed you're right, sorry about the disparaging remark...
>
> > I'll leave it to you to resolve this question.
>
> :-(.
>
> The OP can start by posting "postconf -nf" and "postconf -Mf" output,
> as well as any other maillog entries just above any of:
>
> postfix-authrelay/master[1179]: fatal: daemon initialization failure
> postfix-inetgen/master[1195]: fatal: daemon initialization failure
> postfix-authrelay/postfix-script[1404]: fatal: mail system startup failed
> postfix-inetgen/postfix-script[1406]: fatal: mail system startup failed
>
> As well as try to find relevant information in the trace. As for
> "strace" complaining about "decode_nlattr()", I believe that's a
> Linux-issue in strace itself (perhaps the kernel and userland are not
> entirely matched up), and so ends up on stderr even with "strace -o
> file".
I'd like to add one thing: unfortunately the master babysitter
process currently does not distinguish between:
- The background daemon took too long to report that initialization
is complete (the babysitter could log an ETIMEOUT error).
- The background daetmon (was) terminated without reporting that
initialization is complete (the babysitter could log the termination
status).
- The background daemon reported completion, and closed the channel
before the babysitter had a chance to read the channel. Postfix
has code in many places to wait-before-close, but the code in
this particular place is relatively new and is less defensive.
Every now and then someone improves kernel code and thinks that
it is a good idea to make close-after-write destructive.
All of the above can be found out from strace output.
Wietse