This is the mail archive of the
frysk@sources.redhat.com
mailing list for the frysk project.
Re: Make TestBreakpoints deterministic
Hi Andrew,
On Mon, 2006-08-21 at 13:05 -0400, Andrew Cagney wrote:
> Does this actually stop the problem? For instance, if I were to be
> running two instances of the frysk simultaneously (or any other
> operation that would leave around defunct processes), wouldn't that lead
> to similar consequences?
I don't think so because in those cases the kernel doesn't think we are
still attached and interesting in terminated events in that case.
> And under exactly what circumstance are you seeing terminated events?
> Having a wait call in tearDown, or waiting on observableProcRemovedXXX,
> does not give me warm fuzzies :-( The latter implies that the event
> loop is running - it may have crashed.
It is when the eventloop is restarted "too soon". Another fix (well
workaround) is to add a small Thread.sleep() to the teardown after
TestLib has killed the spawned processes, but that is not as reliable.
If we startup the eventloop again "too soon" what happens is that we see
the proc/task again when we do a Manager.host.requestRefreshXXX(). This
adds the proc as detached to the core. But the kernel still has a
terminate event pending for us from when we were actually attached to it
(which seems to be the reason the proc is still around). So we must
really make sure that we have received all events from the kernel,
including the terminated event, even after we have detached already.
Cheers,
Mark