On Sun, Mar 22, 2015 at 8:54 AM, Mages Simon <mages.si...@googlemail.com> wrote:
> we got some Problems with init.
>
> "init died (signal 11 exit 0)"
>
> after using reboot(8) without any flags.
>
> after some investigation i saw that in reboot(8)
> at line 241 folling code starts:
...
> Every process gets a SIGKILL and becomes a Zombie until
> init calls wait(2) on every one of those. But a Zombie
> doesn't respond to signals, so after the first iterration
> the loop will just wait. After the loop reboot(2) is
> called, if processes are still there or not.
>
> In case every Zombie is finally dead everythings fine
> because init is sleeping and the call to vfs_shutdown,
> which frees all pages, doesn't affect init.
>
> But if there are still zombies arround which init tries
> to clean up und then reboot(2) is called and frees all
> page then init gets a SIGSEGV. Init tries to handle it
> but the signal handler for SIGSEGV is also freed allready.
...

If the kernel's shutdown handling reaches a point where page faults
will themselves fail, then continuing to run user processes should
stop.  If the VM system is going to pull the rug from under processes,
then I'm think that scheduling threads to run is just looking for
trouble.  Maybe we should stop scheduling non-kernel threads before
that point?


Philip Guenther

Reply via email to