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.