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

Repro-Build: jdk-18 generated CLASSLIST for the CDS archive is not always deterministic due to archived classes #2781

Closed
andrew-m-leonard opened this issue Oct 29, 2021 · 2 comments
Assignees
Labels
bug Issues that are problems in the code as reported by the community reproducible-build

Comments

@andrew-m-leonard
Copy link
Contributor

The "lib/classlist" file used for CDS generation is generated by compiling: https://github.com/adoptium/jdk/blob/master/make/jdk/src/classes/build/tools/classlist/HelloClasslist.java
and then taking a CDS dump loaded classes. The idea being the content of this class loads most commonly loaded classes.
However the set of "CDS archived" classes (ByteCache, ShortCache, FDBigInteger, IntegerCache, LongCache) are non-determinstically loaded, possibly due to jit (unsure!). These specifc classes need to be referenced directly by HelloClasslist.java to ensure determinsitic loading.
Fix: https://github.com/andrew-m-leonard/jdk-1/commit/6a80c3dfdf1b6609b7f822f410f579933f1447f2

@andrew-m-leonard andrew-m-leonard self-assigned this Oct 29, 2021
@andrew-m-leonard
Copy link
Contributor Author

Ref #2594

@andrew-m-leonard andrew-m-leonard added bug Issues that are problems in the code as reported by the community reproducible-build labels Oct 29, 2021
@andrew-m-leonard
Copy link
Contributor Author

I have not seen this difference with gcc 10.3 and latest jdk-19.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Issues that are problems in the code as reported by the community reproducible-build
Projects
None yet
Development

No branches or pull requests

1 participant