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

AsyncGetCallTrace() is broken on x86 in JDK 7u40



    • svc
    • x86
    • linux, solaris



        Via e-mail from Marty:

        When we updated our Java 1.7.0 to

          raman[MA] 45% jdk1.7.0_45/bin/java -version
          java version "1.7.0_45"
          Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
          Java HotSpot(TM) Server VM (build 24.45-b08, mixed mode)

        Our tests of a mixed Java/C++ code started failing. We have tracked it down to
        AsyncGetCallTrace in the new J170 version which does not correctly unwind the
        Java callstack.

        Our previous Java 1.7.0 was:
          raman[MA] 48% jdk1.7.0_40-ea-b30/bin/java -version
          java version "1.7.0_40-ea"
          Java(TM) SE Runtime Environment (build 1.7.0_40-ea-b30)
          Java HotSpot(TM) Server VM (build 24.0-b49, mixed mode)

        When our test code was in the task that called from Java to native code, and then
        back to Java, with Java 1.6.0, and previous Java 1.7.0 versions we get:

           jsynprog.javafunc(int) + 0x00000036, line 223 in "jsynprog.java"
           JNIEnv_::CallStaticIntMethod(_jclass*,_jmethodID*,...) + 0x00000016, line 1428 in "jni.h"
           Java_jsynprog_JavaCJava + 0x0000007B, line 105 in "cloop.cc"
           jsynprog.JavaCJava(int) <Java native method>
           jsynprog.main(java.lang.String[]) + 0x00000161, line 117 in "jsynprog.java"

        In the latest Java 1.7.0_45, we only get one frame:

           jsynprog.javafunc(int) + 0x0000003A, line 222 in "jsynprog.java"

        We are currently also testing Java 1.8.0:
          raman[MA] 47% jdk1.8.0_ea-b80/bin/java -version
          java version "1.8.0-ea"
          Java(TM) SE Runtime Environment (build 1.8.0-ea-b80)
          Java HotSpot(TM) Server VM (build 25.0-b21, mixed mode)

        and it is working fine. We tried with the latest available build,
        and the same bug is now there, too. (I don't have the version number for it,
        but I've asked for it.)

        This bug is a show-stopper for us: it breaks our support for mixed Java/C++ codes.
        It is on intel-S2 and intel-Linux, but not sparc-S2.

        What should I do?



          Issue Links



                mgronlun Markus Grönlund
                dcubed Daniel Daugherty
                0 Vote for this issue
                9 Start watching this issue