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

Segfault caused by apparent error in codegen for exception unwinding on s390x

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

      On s390x, when this call to parseElement results in an exception, exception unwinding triggers a call to the FieldPath destructor, but that destructor gets called on address 0x0. Inspection of the disassembly reveals that the exception unwinding code is incorrectly attempting to read the address of the FieldPath object from a volatile (caller-save) register, which has been clobbered with a 0 value.

      As a workaround, we can assign the FieldPath to a named variable, instead of constructing it within the argument list to ProjectTypeParser::parseElement().

            Assignee:
            justin.seyster@mongodb.com Justin Seyster
            Reporter:
            justin.seyster@mongodb.com Justin Seyster
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: