Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8148240

aarch64: random infrequent null pointer exceptions in javac

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b105
    • CPU:
      aarch64
    • OS:
      linux

      Description

      For some time I have been observing random, infrequent null pointer exceptions in javac. These were not repeatable but seemed to happen about once every 10 builds of OpenJDK.

      Backing out the the following changeset causes the problem to go away.

      changeset: 8135:f056955b0ae8
      parent: 8132:2b54cd604683
      user: enevill
      date: Fri Apr 24 11:01:37 2015 +0000
      files: src/cpu/aarch64/vm/aarch64.ad src/cpu/aarch64/vm/frame_aarch64.inline.hpp
      description:
      8075930: AARCH64: Use FP Register in C2
      Summary: modify to allow C2 to allocate FP (R29) as a general register
      Reviewed-by: aph, kvn, dlong

      In the C2 generated code before the point of the exception I observe

        0x000003ff71023b6c: bl 0x000003ff700b23c0 ; OopMap{rfp=NarrowOop [0]=Oop [8]=Oop [16]=Oop [24]=Oop [32]=Oop off=432}
                                                      ;*invokevirtual accept

      It appears that the fp register is not bring preserved correctly. Possibly this only occurs during deoptimisation which would explain why the failure is infrequent.

      I have also observed the fp register being corrupted when it contains an integer value.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                enevill Ed Nevill
                Reporter:
                enevill Ed Nevill
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: