New pagg patch for 2.6.9

Erik Jacobson <[email protected]>
Newsgroups gmane.linux.process-aggregates
Message-ID <[email protected]>
Hi there.

A problem was found with the PAGG patch so I decided to re-spin the patch
for 2.6.9 and include the fix.

In a certain unlikely situation in copy_process (fork.c), it was possible
that a child task could be "aborted".  Since this aborted task is torn
back down within copy_process itself, do_exit isn't called.  Previously,
the only place we called pagg_detach was in the do_exit function.  The end
result is we do a pagg_attach for the process but not a matching pagg_detach
in this rare situation.

Using Linux job as an example here, this could mean a "bogus" task is in
a job container and trying to do certain things to that bogus task could
result in system panics since the task is "mostly gone".  For example, if
job_killjid tried to signal this bogus task, it would cause a panic (null
pointer dereference) since the signal handler isn't attached to the bogus task
any more.

The fix was to add a pagg_detach call right under bad_fork_cleanup_namespace:
in copy_process.

Find the 'linux-2.6.9-pagg.patch' patch at the PAGG web site.
http://oss.sgi.com/projects/pagg/
Click on "Download" on the left.

Thank you.

--
Erik Jacobson - Linux System Software - Silicon Graphics - Eagan, Minnesota
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.