bug-hurd
[Top][All Lists]
Advanced

[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.



reply via email to

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