-
-
Notifications
You must be signed in to change notification settings - Fork 251
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
[JDK 24] jlink fails on Windows/Mac with '<binary-file> has been modified' error #4057
Comments
Please report this upstream to OpenJDK - https://mail.openjdk.org/mailman/listinfo/core-libs-dev |
It do not necessarily be an upstream bug. It can be really downstream. The jmod files and the dll files are bound together. If the signing (or any other operation after build) changes the dll, the jmods have to be adjusted. Forgive me if the details are not exactly precise, as I was dealing with this on rpm level, and had to rebuild jmods after the build was done. |
Interesting - are you getting the same failure with the nightly Temurin builds of 21 or 23 or is it specific to 24. Our signing process should be the same across all versions. |
Hi! I can not provide much more info. I hit it during packing the October CPU, it may be even unrelated. But I hit the same "... .so has been modified". Please ping gnu_andrew/frederic They may know more. Especially if it can imapct windows packaging. |
I forget to mention, that I hit it on all used |
@sxa It's not expected. The way JEP 493 detects modified files is by generating a 512 sha of the file at build time when FWIW, adding |
Aren't Mac OSX builds also doing some signing? Would those have a similar issue? |
@Thihup As a work-around you might be able to use |
That makes sense and is what I suspected might be the case when I reopened this - thanks for confirming.
Yes I would expect so. I just tried windows quickly at midnight last night when I had an idea about the potential cause
@judovana To be clear on this comment, did you mean |
@sxa we are doing nasty stuff in rpms. We build unstripped portables, and then strip and repack them. That was the reason for |
adoptium/ci-jenkins-pipelines#1145 seems related (and might need some work). |
Yep that's expected - the change was made between +23 and +24 so will affect later versions too until we have a resolution |
@jerboaa @sxa
So I suspect the jlink run in in stage (1), we'd need to re-run it in (3) maybe...? |
Actually, i've got a new thought on this, I suspect this is to do with the secondary signing job "sign_build", which is run after the JDK build stage. @sxa I need to have a think, do/should we be running that? eg: https://ci.adoptium.net/job/build-scripts/job/release/job/sign_build/29528/ |
The exploded image shouldn't include Whenever the above runs is relevant. It essentially adds the |
Probably stupid question, but also the content of zips is signed, or just msi? |
https://ci.adoptium.net/job/build-scripts/job/release/job/sign_build/29528/
|
The files within the zips are also signed. The files that the MSI and zip lays down on the users' machine should be identical. |
@smlambert Do we have some basic |
There are no jlink tests currently in the smoke tests bucket, as you say, adding a quick test at that point is a good idea. There are other test targets that do exercise jlink (including the jdk_tools target from openjdk), and they do not look healthy for JDK24, but no one has triaged or investigated those at the moment. |
Thanks. I'll add that to my TODO.
Linux is OK. The basic Those are all jpackage tests. I'll look into those. That's more of an upstream task. |
We have one. @sefroberg is supposed to contribute it to aqa-tests. He wanted the do that during summer, but the interruption on container work-flow delayed it. |
Smoke test PR with basic |
@sxa I thought @andrew-m-leonard is working on this? FWIW, I don't have enough experience with windows/mac signing for temurin builds to be a good assignee for this. Happy to help guide when it comes to how a linkable runtime is assembled. |
Yep Andrew plans to be on it this week ;-) |
The use of
Thanks! |
@merks Glad to hear it. Please remove the option once this issue is fixed, though. It's not a good idea to keep it. |
Absolutely! The script only does this specifically for Java 24 and I will retest/revert when Java 24+27 comes out. But now I can complete the build for Java 24+26: |
Excellent. Thank you! |
All: New JDK 24 EA builds should be available with via the API that have this issue fixed (jdk |
FYI, the JustJ Temurin Indexer is only finding 24+27 for Linux aarch64:
This definitely doesn't exist yet: It's been this way for quite a few days... In any case, I did locally test build JREs for Windows x64 without the workaround and definitely the problem is fixed for that. I can't confirm macos without an actual build and for that I generally need all the JDKs at the same version. But I do expect the problem is fixed there too. 😄 |
Looks like we had a build failure on that one: https://ci.adoptium.net/job/build-scripts/job/jobs/job/jdk24/job/jdk24-linux-aarch64-temurin/3/console FYI @andrew-m-leonard @adamfarley - do we have any plans to re-run this one? |
Not me. I've rerun it anyway. https://ci.adoptium.net/job/build-scripts/job/openjdk24-pipeline/62/ Not sure why it timed out without an error. Maybe we need better error reporting, assuming docker reported anything and we just ignored it for some reason. |
Using JLink with JDK 24 fails with:
Build link: https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B24-ea-beta/OpenJDK-jdk_x64_windows_hotspot_24_24-ea.zip
The text was updated successfully, but these errors were encountered: