-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
DevProd Test Infrastructure
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Follow-on from SERVER-128026, which was resolved for forks, but not death tests. From https://github.com/10gen/mongo/pull/54873 comments:
I think this approach works to handle forks, but I don't think it would handle the case that originally motivated the creation of SERVER-128026
SERVER-128026 specifically was having issues with gtest's death tests specifically, which override the signal handler to ignore sigabrt since they're specifically testing process crashes. Ideally in remote execution we could handle this by using gdb to coredump instead of sigabrt, but I wasn't able to figure out the issue with running gdb in engflow containers to allow that. My last theory was it was an issue with how engflow's runners were interpreting a specific bazel exec property, but I wasn't able to confirm that
It might also be possible to adapt gtest's death testing framework to stop ignoring sigabrts after you send it a more specific signal, but that would probably require modifying google test itself.
We should be coredumping everything under the process-under-test's process tree, although I'm not sure how often core server unit tests fork in practice other than death tests.
- is related to
-
SERVER-128026 Unit test timeouts need to capture the child core, not just the parent core.
-
- Closed
-