On Sat, Feb 15, 2014 at 02:14:50PM -0500, Wietse Venema wrote:

> Viktor Dukhovni:
> >     if (!NORMAL_EXIT_STATUS(status)) {
> > +       /* Debugged processes may be reported to master(8) as stopped */
> > +       if (WIFSTOPPED(status)) {
> 
> In that case it would be prudent to log what happens:
> 
>               msg_warn("process %s pid %d stopped with signal %d",
>               serv->path, pid, WSTOPSIG(status));
> > +           continue;
>           }
> >         if (WIFEXITED(status))
> >             msg_warn("process %s pid %d exit status %d",
> >                      serv->path, pid, WEXITSTATUS(status));
> 
> If I understand correctly, some buggy kernel reports WIFSTOPPED
> events to the Postfix master daemon (the smtpd parent process)
> instead of gdb (the smtpd tracing process).

This is a plausible guess.  Somehow by the time smtpd(8) really
exited, master(8) had already removed it from the child process
hash table, and a missing WIFSTOPPED() case is a somewhat plausible
explanation.

> What OS version are you using? Perhaps I can reproce that bug with
> a small test program.

The first test could be with Postfix, "smtpd -D" and debugger_command
exactly as posted, to see whether we can reproduce at least the
reported symptoms.  Then onward with small programs, ...

-- 
        Viktor.

Reply via email to