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

Naked oop causes segv in synchronized native methods on ia64/sparc

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 5.0
    • 5.0
    • hotspot
    • b39
    • itanium
    • generic, linux, solaris_8
    • Verified


      The unlocking code generated in a synchronized native wrapper will
      use an oop that is in a register across the jni call. This means
      that the register can be missed by gc because of the infamous
      register-window window that exists during native transitions.


      ###@###.### 2004-02-02

      NSK tests:

      runtime/threads/PipedThreadsStressTest
      runtime/threads/ThreadsUsePipedIO

      fail with

      # Internal Error (/nightly/ws/src/share/vm/runtime/synchronizer.cpp, 107), pid=963, tid=13326
      #
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5-nightly_2004.01.31-debug mixed mode)
      #
      # Error: assert(ObjectSynchronizer::verify_objmon_isinpool(mark->monitor()),"monitor is invalid")

      and

      # Internal Error (/nightly/ws/src/share/vm/runtime/synchronizer.cpp, 164), pid=6344, tid=17426
      #
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5-nightly_2004.01.31-debug mixed mode)
      #
      # Error: assert(test != __null,"Unexpected object header as 0!")

      with this bug.

      ###@###.### 2004-02-05
      atg failed on Itanium 2 RedHat AS3 ( test machine jtg-it7.sfbay) after 6 hours
      in b37 bigapps run. Steve Goldman thought the failure could posisble
      be bug 4954584.

            sgoldman Steve Goldman (Inactive)
            sgoldman Steve Goldman (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: