Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-46682

Reuse debugger process for processes of same type in hang_analyzer.py

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Sprint:
      STM 2020-05-18, STM 2020-06-01, STM 2020-06-15
    • Story Points:
      3

      Description

      Reloading the symbols for every process is another bottleneck. To alleviate this, hang_analyzer.py will be modified to reuse the same debugger process and analyze all processes of the same type (ex. All mongod processes will be analyzed in the same debugger process).

      • Processes will be grouped by process type (Ex. all mongod processes)
      • A single process will be created that will:

          run debugger
          load symbols
          for process in processes:
              attach process
              dump info
      

      The debugger scripts are all hardcoded strings, the script for GDB is especially ugly. GDB has an API for python, so if this change turns out to be non-trivial to hardcode as plaintext, we can consider rewriting it to use the python API.

      As part of this ticket, ensure the performance improves.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              vlad.rachev Vlad Rachev
              Reporter:
              vlad.rachev Vlad Rachev
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: