[CRIU] crash when restoring with current git master?
Tycho Andersen
tycho.andersen at canonical.com
Thu Jun 4 15:29:25 PDT 2015
On Thu, Jun 04, 2015 at 11:54:54PM +0300, Pavel Emelyanov wrote:
> >>> +
> >>> +err:
> >>> + futex_abort_and_wake(&task_entries->nr_in_progress);
> >>> + return -1;
> >>> }
> >>
> >> But this thing has never been here. Instead, when child gets an error is
> >> exits and then the sigchld_handler() runs and does futex_abort_and_wake().
> >> Why hasn't this logic worked this time?
> >
> > I just got around to looking at this again, and I'm seeing:
> >
> > ShdPnd: 0000000000010000
> > SigBlk: fffffffe7ffbfeff
> >
> > in the parent of the process that died. If my math is right that's the
> > 17th bit, which is SIGCHLD. I don't know enough about why that
> > wouldn't get delivered, though, given SigBlk.
>
> Yes, the SIGCHLD is pending and is blocked too.
Oh, whoops, yes, the mask goes the other way. Sorry about that :)
> When restore starts CRIU,
> before forking the root, blocks all signals but sigchild (criu_signals_setup).
> Maybe SIGCHILD was blocked _before_ CRIU started and this block got inherited?
I just checked and it doesn't look like it (nothing is blocked when
exec()ing criu or just after criu gets exec'd). I'll poke around and
see what I can figure out.
Tycho
More information about the CRIU
mailing list