[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug#110015: FS server crashs a subhurd
From: |
Moritz Schulte |
Subject: |
Bug#110015: FS server crashs a subhurd |
Date: |
25 Aug 2001 19:21:14 +0200 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
Hi again,
the following change in init/init.c works:
--- init.c.orig Sat Aug 25 19:12:13 2001
+++ init.c Sat Aug 25 19:12:26 2001
@@ -1182,7 +1182,8 @@ S_startup_essential_task (mach_port_t se
startup_essential_task_reply (reply, replytype, 0);
init_stdarrays ();
- frob_kernel_process ();
+ if (! fakeboot)
+ frob_kernel_process ();
launch_system ();
But i don't know wether that's the right fix. The problem is that
frob_kernel_process() tries to register the kernel task (pid 2) as an
essential task:
err = proc_pid2task (procserver, 2, &task);
if (err)
{
error (0, err, "cannot get kernel task port");
return;
}
err = proc_task2proc (procserver, task, &proc);
if (err)
{
error (0, err, "cannot get kernel task's proc server port");
mach_port_deallocate (mach_task_self (), task);
return;
}
/* Mark the kernel task as an essential task so that we never
want to task_terminate it. */
err = record_essential_task ("kernel", task);
assert_perror (err);
This doesn't work right in a subhurd.
Btw, I find the mixture of parent-Hurd-processes and
child-Hurd-processes quite confusing. Is it difficult to modify proc
so that you can _not_ see the processes from parent Hurds? IMHO, this
would be better.
moritz
--
Moritz Schulte <moritz@chaosdorf.de> http://www.chaosdorf.de/moritz/
Debian/GNU supporter - http://www.debian.org/ http://www.gnu.org/
GPG fingerprint = 3A14 3923 15BE FD57 FC06 B501 0841 2D7B 6F98 4199