Add a temporary workaround which just lets init die instead of

causing a panic if it is killed due to a unsolved stack overflow
seen very late during shutdown on sparc64 when the gmirror worker
process exists, which is a regression introduced in 8.0.

Reviewed by:	kib
MFC after:	3 days
This commit is contained in:
Marius Strobl 2009-08-26 21:10:47 +00:00
parent 4f4946d337
commit 5486ffc898

View File

@ -131,7 +131,12 @@ exit1(struct thread *td, int rv)
mtx_assert(&Giant, MA_NOTOWNED);
p = td->td_proc;
if (p == initproc) {
/*
* XXX in case we're rebooting we just let init die in order to
* work around an unsolved stack overflow seen very late during
* shutdown on sparc64 when the gmirror worker process exists.
*/
if (p == initproc && rebooting == 0) {
printf("init died (signal %d, exit %d)\n",
WTERMSIG(rv), WEXITSTATUS(rv));
panic("Going nowhere without my init!");