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

Replace use of thread unsafe strtok

    Details

    • Subcomponent:
    • Resolved In Build:
      b24

      Backports

        Description

        Quoted from hotspot-compiler-dev@openjdk.java.net:

        "Hello,

        I’m posting this to the group since I can’t open a bug report against OpenJDK – I only have browsing privileges.

        compilerDirectives.cpp is using the MT-Unsafe strtok function. This is causing some JVM crashes with our application under linux-x86_64 since some of our native code run via JNI is also using strtok. Fixing either our code or HotSpot to use strtok_r resolves the issue. We started seeing this problem after upgrading to OpenJDK 11 from Oracle JDK 8, which didn’t trigger any crashes.

        Problematic lines:

        https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/share/compiler/compilerDirectives.cpp#l402

        https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/hotspot/share/compiler/compilerDirectives.cpp#l407

        Fixing this would make the compiler immune from other JNI code (or other JVM code) that could be using strtok.

        The following details a survey of HotSpot that was done a long time ago to identify all occurrences of MT-unsafe functions:

        https://bugs.openjdk.java.net/browse/JDK-4647546

        I understand the latter goes beyond the scope of the compiler group.

        Thanks,

        Andre <Andre.Gillet@nuance.com>



          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  neliasso Nils Eliasson
                  Reporter:
                  neliasso Nils Eliasson
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: