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

[dtrace] signatures returned by Java 7 jstack() are corrupt on Solaris

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • hs25
    • hs24, hs25
    • hotspot
    • svc
    • b40

        jstack() is returning corrupt method signatures on Solaris. To reproduce, you can use DTrace:

        dtrace -x jstackstrsize=2048 -Z \
        -n 'hotspot_jni$target::: /0/{}' \
        -n 'syscall::write:entry /pid==$target/{jstack(1024)}' \
        -c 'java -version'

        With Java 6, the output is roughly:

                     java/io/FileOutputStream.writeBytes([BII)V
                     java/io/FileOutputStream.write([BII)V
                     java/io/BufferedOutputStream.flushBuffer()V
                     java/io/BufferedOutputStream.flush()V
                     java/io/PrintStream.write([BII)V

        With Java 7, the output is roughly:

                     java/io/FileOutputStream.riteBytes
                     java/io/FileOutputStream.rite
                     java/io/BufferedOutputStream.lushBuffer
                     java/io/BufferedOutputStream.lush
                     java/io/PrintStream.rite

        As you can see, the method names are truncated.

        As of 2013-02-27, Solaris is not yet built with Java 7. You can contact me (sam.falkner at oracle dot com) if you need access to a machine that reproduces the bug.

              thurka Tomáš Hůrka
              jjg Jonathan Gibbons
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: