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

Stack trace symbolization fails for large stack traces

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL

      On my machine it appears I can symbolize small stack traces, but not large ones. Largest I got working was 42 frames, smallest non-working was 50 frames.

      It appears like there is an error in resetting the LibUnwindStepIteration iterator in LibUnwindStepIteration::start(). max.hirschhorn@mongodb.com noticed that the raw iterator resets _i to 0 in start(), but this _i = 0 is missing from the LibUnwind version.

      Adding that in to LibUnwindStepIteration::start() resolved my issue. I think small ones work because the _i counter can be iterated twice and stay under the maxFrames limit of 100. But if your stack trace is too large it cuts off. I'm not sure why 50 didn't work though, there may be an off-by-one somewhere.

      Thanks to daniel.gottlieb@mongodb.com and max.hirschhorn@mongodb.com for helping me debug and diagnose.

            Assignee:
            charlie.swanson@mongodb.com Charlie Swanson
            Reporter:
            charlie.swanson@mongodb.com Charlie Swanson
            Votes:
            2 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: