----- Original Message -----
> On Mon, Nov 7, 2011 at 2:24 PM, Dave Anderson <[email protected]>
> wrote:
> > I would be a little hesitant to get rid of the pc->pipe_pid at this point
> > in time.
> >
> > I can't seem to be able to reproduce it, but certainly there should
> > be an escape valve in output_commands_to_pid() to recognize it and bail
> > out. But I presume that your piped command sequence actually worked,
> > and so it would be strange/unnecessary for setup_redirect() to do the
> > error(FATAL_RESTART, ...) that it currently does when
> > output_commands_to_pid()
> > returns with a NULL?
>
> I am not sure either what happened exactly but as far as I can tell
> the piped command didn't really work since it terminated before
> reading anything from its stdin. I am not sure how to reproduce the
> problem and it may very well be symptomatic of a problem in our
> environment but I know it happened at least twice (cores available on
> demand). So I think error(FATAL_RESTART) is actually appropriate (or
> at least more appropriate than looping forever). Or do you think it's
> important to get the return value of the child before deciding what
> to do?
>
> > Anyway, my point is to try to keep the fix as simple as possible...
>
> Makes sense.
Adrien,
How does the attached patch work for you?
Dave
--- crash/cmdline.c.orig
+++ crash/cmdline.c
@@ -757,8 +757,12 @@ retry:
p_pid = strtok(NULL, " ");
pgrp = strtok(NULL, " ");
if (STREQ(name, "(sh)") &&
- (atoi(p_pid) == getpid()))
- pc->pipe_shell_pid = atoi(pid);
+ (atoi(p_pid) == getpid())) {
+ if (retries && STREQ(status, "Z"))
+ pc->pipe_shell_pid = 0;
+ else
+ pc->pipe_shell_pid = atoi(pid);
+ }
if (STREQ(name, lookfor) &&
((atoi(p_pid) == getpid()) ||
(atoi(p_pid) == pc->pipe_shell_pid)
--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility