The ability to skip tracking processes was added to Evergreen as part of
EVG-976. It was necessary to work around how smoke.py – still used on the 2.6 branch and the 3.0 branch – creates its own job object, even if the current process is already inside one ( SERVER-23959).
I would like to know whether the Evergreen team is willing to (1) remove the "disable_cleanup" capability from Evergreen and (2) refuse to ever add something similar to it in the future. Without such a guarantee, there's little value in attempting to remove the "kill processes" function in the mongodb-mongo-master Evergreen project configuration (SERVER-18727) because it isn't possible to trust that all Evergreen projects will clean up processes they spawned.
- I'll schedule
SERVER-23959for myself in the next iteration.
- I'll propose we (1) re-add the call to shell.cleanup that was removed as part of the changes from
SERVER-24442, (2) order of the shell.cleanup command before the call to the "kill processes" function, and (3) trigger a system failure if the "kill processes" function ever identifies a process to kill. There's difficulty in identifying failures caused by processes left behind by other tasks or from duplicate Evergreen agent processes that I'd rather defensively build up trust that shell.cleanup works and that the fix for EVG-1297is complete.