Capture coredumps on child death tests

XMLWordPrintableJSON

    • 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.

            Assignee:
            Unassigned
            Reporter:
            Steve McClure
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: