Displaying 1 result from an estimated 1 matches for "dtrace_lock".
2007 May 02
2
Deadlock when child process is forking?
...331 }
> 332
> 333 mutex_enter(&p->p_lock);
> 334 p->p_flag &= ~SFORKING;
> 335 sprunlock(p);
As you can see, the parent is sprlock''d. The call to
dtrace_helpers_fork()
ends up at line 13526 in dtrace.c:
> 13526 mutex_enter(&dtrace_lock);
> 13527 ASSERT(from->p_dtrace_helpers != NULL);
> 13528 ASSERT(dtrace_helpers > 0);
So we have "owns sprlock, wants dtrace_lock".
At the same time this is happening, we have a userland dtrace either
registering or removing probes in the parent that is forking.
If the...