Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major - P3
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 4.7.0
-
Component/s: Shell, Testing Infrastructure
-
Labels:
-
Backwards Compatibility:Fully Compatible
-
Operating System:ALL
-
Backport Requested:v4.4
-
Steps To Reproduce:
-
Sprint:STM 2020-06-29, STM 2020-07-13
-
Linked BF Score: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
-