Jeff Dike writes:
> This fixes the main process hang problem. It turned out to be surprisingly
> subtle and fairly basic.
> When a UML process execs, it gets a new host process because it sometimes
> needs a new host mm. Before that, it was the product of a fork. The problem
> was with the ptrace attaching of the tracing thread to the newly forked
> process. It never ran a little piece of initialization code, which among
> things, enabled signals. So, if a process forked, quickly execed, but got a
> SIGIO in between, the SIGIO was never seen by that process because it had
> signals blocked. Since the exec resulted in a new host process, the old host
> process, which had the SIGIO pending, was killed, and the SIGIO essentially
> went down with the ship.
> On the down side, the killall5 hang is back. I think I reintroduced it with
> the fix above. Not to worry, though. It will have a short and unhappy life.
I've dialled into the 'net specifically to get your latest checkins
that you'd mentioned at 6:30 our time, not long after I update my
copies, and to flush my mail to the list.
I'll be checking this out shortly.
Have you looked at my replacement umn_helper? My cvs update suggests
it's not in the repository yet.