Skip to content
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

8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer #8113

Closed
wants to merge 2 commits into from

Conversation

RealCLanger
Copy link
Contributor

@RealCLanger RealCLanger commented Apr 5, 2022

Make cygwin usage in GHA more reliable

With this change we now attempt to retrieve the cygwin installer from cache every time we need it.
We would also only try to download it once per build job, in the beginning.
During testing we rely on it being cached which will make potential errors more obvious
(e.g. in the download step in the beginning of the build).

I also replaced actions/cache@v2 with v3. Didn't see issues.


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/8113/head:pull/8113
$ git checkout pull/8113

Update a local copy of the PR:
$ git checkout pull/8113
$ git pull https://git.openjdk.java.net/jdk pull/8113/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 8113

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/8113.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Apr 5, 2022

👋 Welcome back clanger! 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 openjdk bot changed the title JDK-8284389 8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer Apr 5, 2022
@openjdk openjdk bot added the rfr Pull request is ready for review label Apr 5, 2022
@openjdk
Copy link

openjdk bot commented Apr 5, 2022

@RealCLanger The following label will be automatically applied to this pull request:

  • build

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the build build-dev@openjdk.org label Apr 5, 2022
@mlbridge
Copy link

mlbridge bot commented Apr 5, 2022

Webrevs

Copy link
Member

@shipilev shipilev left a comment

Choose a reason for hiding this comment

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

Let's not switch v2 -> v3 in this PR.

So windows_aarch64_build, windows_x64_build checks the cache and adds recovery step. But windows_x64_test does not do it? Why? If the cygwin installer was cached, it would work fine, but if it does not -- for example if windows_x64_test job is restarted in isolation after cache flush -- it would break? I think we should be consistent in this: if installer is not in cache, we always do the recovery.

@RealCLanger
Copy link
Contributor Author

RealCLanger commented Apr 6, 2022

Let's not switch v2 -> v3 in this PR.

You're right. I'll do another PR to update the actions versions. There are also updates possible for upload and donwload actions.

So windows_aarch64_build, windows_x64_build checks the cache and adds recovery step. But windows_x64_test does not do it? Why? If the cygwin installer was cached, it would work fine, but if it does not -- for example if windows_x64_test job is restarted in isolation after cache flush -- it would break? I think we should be consistent in this: if installer is not in cache, we always do the recovery.

Yeah, I wasn't happy with this, too. I, however, thought that we could maybe assume that the build step was run successfully before the test step and therefore the cygwin installer should be in the cache and we would never fail. But, I guess you're right, the cache could be evicted in between due to whatever reason and we're unnecessarily abstaining from a safety net.

What I want to accomplish is that if it fails due to an issue with downloading the cygwin installer, it should fail in the build job, not later. But this should be the case in 99.99% now anyway, due to the added caching.

I will implement your suggestions.

Copy link
Member

@shipilev shipilev left a comment

Choose a reason for hiding this comment

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

This looks fine, assuming GHA workflows are green.

@openjdk
Copy link

openjdk bot commented Apr 6, 2022

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

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

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

8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer

Reviewed-by: shade

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 9 new commits pushed to the master branch:

  • bbe894f: 8284288: Use SVG images for FocusSpec.html and Modality.html
  • e524107: 8280872: Reorder code cache segments to improve code density
  • e18414a: 8284014: Menu items with submenus in JPopupMEnu are not spoken on macOS
  • b56df28: 8283935: Parallel: Crash during pretouch after large pages allocation failure
  • 0a67d68: 8284294: Create an automated regression test for RFE 4138746
  • 955d61d: 8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
  • 4ffe96a: 8282506: Clean up remaining references to TwoStacksPlain*SocketImpl
  • 741be46: 8183390: Fix and re-enable post loop vectorization
  • 500f9a5: 8283396: Null pointer dereference in loopnode.cpp:2851

Please see this link for an up-to-date comparison between the source branch of this pull request and the master branch.
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this 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 added the ready Pull request is ready to be integrated label Apr 6, 2022
@RealCLanger
Copy link
Contributor Author

Thanks for the review.
/integrate

@openjdk
Copy link

openjdk bot commented Apr 7, 2022

Going to push as commit 61fcf2f.
Since your change was applied there have been 20 commits pushed to the master branch:

  • d5cd4a3: 8283387: [macos] a11y : Screen magnifier does not show selected Tab
  • 5a21397: 8284387: Fix formatting of doc comments in jdk.javadoc
  • 4451257: 8284437: Building from different users/workspace is not always deterministic
  • dd4a1bb: 8284299: Handle inheritDoc misuse more gracefully
  • 46ce2ef: 8277517: Bump minimum boot jdk to JDK 18
  • 77388ea: 8284368: Remove finalizer method in jdk.crypto.cryptoki
  • 8e4fab0: 8284303: runtime/Thread/AsyncExceptionTest.java timed out
  • 3cd3a83: 8284167: Make internal javac exceptions stackless
  • a385142: 8177107: Reduce memory footprint of java.lang.reflect.Constructor/Method
  • ec205f6: 8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
  • ... and 10 more: https://git.openjdk.java.net/jdk/compare/e9e3aa7b827204630a04618fa1f30ea00417667a...master

Your commit was automatically rebased without conflicts.

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

openjdk bot commented Apr 7, 2022

@RealCLanger Pushed as commit 61fcf2f.

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

@RealCLanger RealCLanger deleted the gha-cygwin branch April 7, 2022 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build build-dev@openjdk.org integrated Pull request has been integrated
2 participants