[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] startup: Mark all essential tasks as our children
From: |
gfleury |
Subject: |
Re: [PATCH 1/2] startup: Mark all essential tasks as our children |
Date: |
Mon, 10 May 2021 22:13:31 +0000 |
Hello Damien and all,
8 mai 2021 02:21 "Damien Zammit" <damien@zamaudio.com> a écrit:
> This marks all essential tasks as children of startup (or proc?)
>
> With this patch, rumpdisk appears as an essential task but
>
> cat /proc/6/stat
>
This seems to be related to a known bug report by Brent at:
http://savannah.gnu.org/bugs/?49730#comment0
As mentioned in that report bug, one can read /proc/PID/environ
with the hurd tool 'msgport' like 'msgport /proc/PID/environ'.
Try to use that tool to see if you get something.
From what i analyse some mounths later (I may be wrong)
this happens to processes launch as translator but not others.
However it seems like a cross-compile image makes with flavio's
script at: https://github.com/flavioc/cross-hurd
don't have that problem.
> still fails with EIO, and the next patch catches the error by printing a
> warning.
>
> ---
> startup/startup.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/startup/startup.c b/startup/startup.c
> index 9faeb462..ea52b1ad 100644
> --- a/startup/startup.c
> +++ b/startup/startup.c
> @@ -350,6 +350,10 @@ request_dead_name (mach_port_t name)
> static error_t
> record_essential_task (const char *name, task_t task)
> {
> + mach_print ("record_essential_task: ");
> + mach_print (name);
> + mach_print ("\n");
> +
> struct ess_task *et;
> /* Record this task as essential. */
> et = malloc (sizeof (struct ess_task));
> @@ -368,6 +372,10 @@ record_essential_task (const char *name, task_t task)
> /* Dead-name notification on the task port will tell us when it dies. */
> request_dead_name (task);
>
> + /* Make task a child of startup */
> + if (task != mach_task_self () && task != proctask)
> + proc_child (procserver, task);
> +
> #if 0
> /* Taking over the exception port will give us a better chance
> if the task tries to get wedged on a fault. */
> --
> 2.31.0
note: I don't have a hurd VM image for some mounths to test it again.
Thanks.