Hi -

I'm having trouble understanding how glibc's fork() interacts with the proc
server.

In fork.c, we call task_create (line 172 in the Debian code), then shortly
thereafter we call the proc server's proc_task2proc (line 205), and no
error returns are tolerated.

How do we know that the proc server knows about the task yet?  It will get
a notification from the kernel that a new task has been created, but how do
we know that the notification has been processed yet?  Is there a race
condition here, or am I missing something?

I tried my new "attachable" rpctrace on bash, and have found that the shell
can no longer run programs after rpctrace attaches.  I get an error return
on that proc_task2proc call (ESRCH - No such process), but I don't see why
we shouldn't get the error return.

     agape
     brent

Reply via email to