Hello Damien and all, 8 mai 2021 02:21 "Damien Zammit" <dam...@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.