Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
Fully Compatible
-
ALL
-
v4.4
-
-
STM 2020-06-29, STM 2020-07-13
-
50
Description
The MongoRunner.runningChildPids() function calls through to getRunningMongoChildProcessIds() in shell_utils_launcher.cpp, which in turn calls wait_for_pid() on all processes in ProgramRegistry::_registeredPids. A JavaScript test of the form
let cleanup;
|
try { |
cleanup = startParallelShell(...);
|
assert.soon(...);
|
...
|
} finally {
|
cleanup();
|
}
|
(for example) would end up calling wait_for_pid() multiple times. The first call to wait_for_pid() via getRunningMongoChildProcessIds() would unregister the pid from ProgramRegistry::_registeredPids and the second call would trigger this invariant.
Attachments
Issue Links
- is caused by
-
SERVER-43153 Expose pids of spawned processes in the shell
-
- Closed
-
- related to
-
SERVER-49347 Fix locking in shell's ProgramRegistry
-
- Closed
-