[Top][All Lists]

[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");
  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);

  /* 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 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]