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

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.7.2
    • Component/s: None
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Linked BF Score:
      0

      Description

      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().

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              justin.seyster Justin Seyster
              Reporter:
              justin.seyster Justin Seyster
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: