Description:
Pushbuild currently uses a fairly robust method to clean up any hanging processes after running tests. It uses the 'ps' command to find all processes that run in the same session as the parent do-remote.pl process, and kills those (first with SIGTERM, and then SIGKILL if that fails).
However, this currently does not work for NDB and instance manager processes, since they detach themselves from the current session to become daemons (calling setsid() to get a new session id). So pushbuild has to rely on PID files to find these processes, which is not quite as reliable (due to pid files being not written/overwritten/deleted, and races).
NDB provides the --nodaemon option for this, but it is not exposed by the mysql-test/ndb/ndbcluster.sh script, and hence not by mysql-test-run.pl.
Instance manager similarly has the --skip-run-as-service option, also not exposed in mysql-test-run.pl.
If the test suite could use these options to run NDB and IM not as daemons, pushbuild cleanup would become more robust (and it would also be easier to clean up a local, manual test, as simple 'ps' would show hanging processes after terminating mysql-test-run.pl).
How to repeat:
Feature request.