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

AOT's Linker.java seems to eagerly fail-fast on Windows.

    Details

    • Subcomponent:
    • Resolved In Build:
      b06
    • CPU:
      generic
    • OS:
      windows

      Backports

        Description

        jtreg by design curates the environment variables exposed to the test subject and if devkit is not used all of AOT regression tests will fail.

        I encountered this on JDK11.08, but this issue exists in the latest release.

        The reason is as follows:
        1. Consider this:
        https://hg.openjdk.java.net/jdk-updates/jdk11u/file/030bc020dc04/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Linker.java#l203

        The logic tries to get the environment variable as follows:

        String programFilesX86 = System.getenv("ProgramFiles(x86)”);
        And Linker.java will keel over if “ProgramFiles(x86)” is not present.

        2. The next failure is here:
        https://hg.openjdk.java.net/jdk-updates/jdk11u/file/030bc020dc04/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Linker.java#l226
        vswhere.exe will return an empty output when the environment variable “ProgramData” is not defined, essentially vswhere.exe fails silently.

        The above logic seems to fail-fast, if the environment variable “programFilesX86” does not exist, and even if it did and not having ProgramData will cause vswhere.exe will fail silently in which case Linker.java will never find older versions of VisualStudio as enumerated by VSVERSIONS.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  kvn Vladimir Kozlov
                  Reporter:
                  ksrini Kumar Srinivasan
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: