Assertion might fail depending on timing due to different errors being returned depending on the state of the resmoke call when SIGINT is received.
Clean exit and non-clean exit is handled differently in shell_utils_launcher.cpp.
- When resmoke is killed while actually running, resmoke handles the interrupt and exits cleanly, error 130 is returned and the assertion passes. executor.py catches KeyboardInterrupt while running test suites and resmoke sets the exit code for the suite
- When resmoke is killed while not running the suite, in this case parsing YAML, the exception is not catched, and error returned is -2 (-SIGINT) and the assertion fails. See python stack trace above with KeyboardInterrupt exception.
Not sure if this could be fixed in resmoke, nor if it would make sense to change this. Repro: [^interrupt_test.js][^dummy_sleep.js]
For now we can fix the assertion by also checking for -2.
Another question that arises is why the FSM client is so slow to start, as in the failing instance the FSM client is killed before it has actually done anything. I guess this is probably due to a saturated system.