upstart should not trace fork branches with execve
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
upstart |
New
|
Undecided
|
Unassigned |
Bug Description
1. Why this bug appear:
I decide to write a daemon in python. It uses ctypes. ctypes uses fork()+
2. How to prevent:
when "expect fork" or "expect daemon" is used, upstart should trace not only one branch, but all branches of all processes, spawned once job is started and until expected sequence of fork()s is complete. When any branch executes execve() in unexpected place, that branch should be ignored (and diagnostic message is printed (logged)).
3. Bad sides:
There are unclear situations (and races), like this:
-------------
if (fork())
{
if (fork())
exit(0)
sleep(100)
}
else
{
if (fork())
exit(0)
sleep(100)
}
--------------
These situations always exists in upstart, but ones should be detected and logged at least.
Looks like a duplicate of https:/ /bugs.launchpad .net/upstart/ +bug/406397