Skip to content

8358538: Update GHA Windows runner to 2025 #3052

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from

Conversation

shipilev
Copy link
Member

@shipilev shipilev commented Jun 23, 2025

Fixes GHA. Current Windows runners are already in brown-out stage, and will be decommissioned by the end of the month. So we need to get it into update repos soon.

Additional testing:

  • GHA

Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • JDK-8358538 needs maintainer approval
  • JDK-8360042 needs maintainer approval

Issues

  • JDK-8358538: Update GHA Windows runner to 2025 (Bug - P4 - Approved)
  • JDK-8360042: GHA: Bump MSVC to 14.44 (Bug - P3 - Approved)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk11u-dev.git pull/3052/head:pull/3052
$ git checkout pull/3052

Update a local copy of the PR:
$ git checkout pull/3052
$ git pull https://git.openjdk.org/jdk11u-dev.git pull/3052/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 3052

View PR using the GUI difftool:
$ git pr show -t 3052

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk11u-dev/pull/3052.diff

Using Webrev

Link to Webrev Comment

@shipilev
Copy link
Member Author

/issue add JDK-8360042

@bridgekeeper
Copy link

bridgekeeper bot commented Jun 23, 2025

👋 Welcome back shade! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Jun 23, 2025

@shipilev This change now passes all automated pre-integration checks.

After integration, the commit message for the final commit will be:

8358538: Update GHA Windows runner to 2025
8360042: GHA: Bump MSVC to 14.44

Reviewed-by: sgehwolf

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been no new commits pushed to the master branch. If another commit should be pushed before you perform the /integrate command, your PR will be automatically rebased. If you prefer to avoid any potential automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot changed the title Backport b787ff6def08a050b690b60e4a0ceb3aec2b73c8 8358538: Update GHA Windows runner to 2025 Jun 23, 2025
@openjdk
Copy link

openjdk bot commented Jun 23, 2025

This backport pull request has now been updated with issue from the original commit.

@openjdk openjdk bot added backport Port of a pull request already in a different code base rfr Pull request is ready for review labels Jun 23, 2025
@openjdk
Copy link

openjdk bot commented Jun 23, 2025

@shipilev
Adding additional issue to issue list: 8360042: GHA: Bump MSVC to 14.44.

@mlbridge
Copy link

mlbridge bot commented Jun 23, 2025

Webrevs

@jerboaa
Copy link
Contributor

jerboaa commented Jun 24, 2025

Windows build fails with:


* For target support_native_jdk.jdwp.agent_libjdwp_debugInit.obj:
debugInit.c
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(249): error C2220: the following warning is treated as an error
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(249): warning C5287: operands are different enum types '<unnamed-enum-JVMTI_VERSION_1>' and '<unnamed-enum-JVMTI_VERSION_MASK_INTERFACE_TYPE>'; use an explicit cast to silence this warning
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(249): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(251): warning C5287: operands are different enum types '<unnamed-enum-JVMTI_VERSION_1>' and '<unnamed-enum-JVMTI_VERSION_MASK_INTERFACE_TYPE>'; use an explicit cast to silence this warning
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(251): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(253): warning C5287: operands are different enum types '<unnamed-enum-JVMTI_VERSION_1>' and '<unnamed-enum-JVMTI_VERSION_MASK_INTERFACE_TYPE>'; use an explicit cast to silence this warning
d:\a\jdk11u-dev\jdk11u-dev\src\jdk.jdwp.agent\share\native\libjdwp\debugInit.c(253): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings

Some more work needs to happen it seems for 11u.

@jerboaa
Copy link
Contributor

jerboaa commented Jun 24, 2025

Pre-submit tests - linux-x86 / build - Build / test is infra related.

@vieiro
Copy link
Contributor

vieiro commented Jun 24, 2025

@jerboaa @shipilev Yep. It seems https://bugs.openjdk.org/browse/JDK-8357193 should be backported to 11 too.

@jerboaa
Copy link
Contributor

jerboaa commented Jun 24, 2025

@jerboaa @shipilev Yep. It seems https://bugs.openjdk.org/browse/JDK-8357193 should be backported to 11 too.

@vieiro Thanks. Please create a PR for the backport. It seems a small enough change and would get this unblocked.

@shipilev
Copy link
Member Author

Right, thanks. I'll wait for JDK-8357193 to get in first.

@shipilev
Copy link
Member Author

Right, thanks. I'll wait for JDK-8357193 to get in first.

I see there is already the PR: #3034

@vieiro
Copy link
Contributor

vieiro commented Jun 24, 2025

Right, thanks. I'll wait for JDK-8357193 to get in first.

I see there is already the PR: #3034

D'oh! I'll close #3053 then

@shipilev shipilev force-pushed the JDK-8358538-gha-windows2025 branch from a72f153 to 3fc3ede Compare June 25, 2025 17:17
@shipilev
Copy link
Member Author

Pulled in new master that contains #3034 now. Let's see if it fixes the rest of the build.

@openjdk
Copy link

openjdk bot commented Jun 25, 2025

@shipilev Please do not rebase or force-push to an active PR as it invalidates existing review comments. Note for future reference, the bots always squash all changes into a single commit automatically as part of the integration. See OpenJDK Developers’ Guide for more information.

@jerboaa
Copy link
Contributor

jerboaa commented Jun 26, 2025

Tier1 compiler failures on Windows seem related. Failures look like:

----------System.err:(26/1550)----------
artifact resolution error: jdk.test.lib.artifacts.ArtifactResolverException: Couldn't automatically resolve dependency for devkit-windows_x64 , revision VS2017-15.5.5+1.0
Please specify the location using jdk.test.lib.artifacts.devkit-windows_x64
 stdout: [Compiling libDeoptimizationTest.so...
Exception in thread "main" java.lang.InternalError: Can't locate Microsoft Visual Studio amd64 link.exe
	at [email protected]/jdk.tools.jaotc.Linker.<init>(Linker.java:112)
	at [email protected]/jdk.tools.jaotc.Main.run(Main.java:160)
	at [email protected]/jdk.tools.jaotc.Main.run(Main.java:133)
	at [email protected]/jdk.tools.jaotc.Main.main(Main.java:89)
];
 stderr: []
 exitValue = 1

@vieiro
Copy link
Contributor

vieiro commented Jun 26, 2025

@shipilev @jerboaa ,

This happens because the ProgramFiles(x86) environment variable is not set properly with windows-2025 (nor with windows-2022 AFAIK), and the linker cannot be found.

It seems JDK-8248987 doesn't work as intented.

If ProgramFiles(x86) environment variable is not set we could use a default directory and print out a warning. Something similar to:

diff --git a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Linker.java b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Linker.java
index 92c80aad397..6af0c17512d 100644
--- a/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Linker.java
+++ b/src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Linker.java
@@ -163,7 +163,7 @@ final class Linker {
      */
     private static String getWindowsLinkPath(Main main) throws Exception {
         try {
-            Path vc141NewerLinker = getVC141AndNewerLinker();
+            Path vc141NewerLinker = getVC141AndNewerLinker(main);
             if (vc141NewerLinker != null) {
                 return vc141NewerLinker.toString();
             }
@@ -204,10 +204,11 @@ final class Linker {
         return null;
     }
 
-    private static Path getVC141AndNewerLinker() throws Exception {
+    private static Path getVC141AndNewerLinker(Main main) throws Exception {
         String programFilesX86 = System.getenv("ProgramFiles(x86)");
         if (programFilesX86 == null) {
-            throw new IllegalStateException("Could not read the ProgramFiles(x86) environment variable");
+            programFilesX86 = "C:\\Program Files (x86)";
+            main.printer.printlnInfo("Could not read the ProgramFiles(x86) environment variable. Using default '" + programFilesX86 + "'");
         }
         String vswherePath = programFilesX86 + "\\Microsoft Visual Studio\\Installer\\vswhere.exe";
         Path vswhere = Paths.get(vswherePath);

Let me know if you want me to create a new issue with that patch on top of this PR.

@vieiro
Copy link
Contributor

vieiro commented Jun 26, 2025

Or, who knows, maybe we need a new createWindowsDevkit2022.sh similar to createWindowsDevkit2019.sh ...

@shipilev
Copy link
Member Author

Let me know if you want me to create a new issue with that patch on top of this PR.

Yes, please, if you can figure this out in a separate issue?

I think at this point, with runners going away soon, we are better off pushing this backport, even with jaotc test failures. Because the alternative is to not having Windows testing at all past June 30. Let's see if there is a resolution before that cut-out date.

@vieiro
Copy link
Contributor

vieiro commented Jun 27, 2025

I've created https://bugs.openjdk.org/browse/JDK-8360816. Feel free to enhance as you see fit. A PR within the hour.

@vieiro
Copy link
Contributor

vieiro commented Jun 27, 2025

Well, let's see what happens.
I've set it on top of this PR (to verify the fix works) but we may want to set it on top of master and have it merged first.

@vieiro
Copy link
Contributor

vieiro commented Jun 27, 2025

Yep, looks like the fix in #3056 brings back the passing AOT compiler tests...

@shipilev
Copy link
Member Author

OK. Looks like @vieiro's test fix works. I say we integrate this PR, followed by @vieiro's fix.

/approval 8358538 request Same reason as for 21u. Requires JDK-8360042 as the followups, and JDK-8360816 as another test fix. JDK-8360042 would follow in the same commit. JDK-8360816 would be done as the subsequent PR.
/approval 8360042 request Same reason as for 21u. Follow-up for JDK-8358538.

@openjdk
Copy link

openjdk bot commented Jun 27, 2025

@shipilev
8358538: The approval request has been created successfully.

@openjdk
Copy link

openjdk bot commented Jun 27, 2025

@shipilev
8360042: The approval request has been created successfully.

@openjdk openjdk bot added the approval Requires approval; will be removed when approval is received label Jun 27, 2025
@jerboaa
Copy link
Contributor

jerboaa commented Jun 27, 2025

/approve yes

Copy link
Contributor

@jerboaa jerboaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Test failures are going to be fixed with #3056

@openjdk
Copy link

openjdk bot commented Jun 27, 2025

@jerboaa
8358538: The approval request has been approved.
8360042: The approval request has been approved.

@openjdk openjdk bot added ready Pull request is ready to be integrated and removed approval Requires approval; will be removed when approval is received labels Jun 27, 2025
@shipilev
Copy link
Member Author

Let's go!

/integrate

@openjdk
Copy link

openjdk bot commented Jun 27, 2025

Going to push as commit 0927ca7.

@openjdk openjdk bot added the integrated Pull request has been integrated label Jun 27, 2025
@openjdk openjdk bot closed this Jun 27, 2025
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Jun 27, 2025
@openjdk
Copy link

openjdk bot commented Jun 27, 2025

@shipilev Pushed as commit 0927ca7.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport Port of a pull request already in a different code base integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

3 participants