[jdk17u-dev] RFR: 8276660: Scalability bottleneck in java.security.Provider.getService()

Aleksey Shipilev shade at openjdk.org
Mon Jul 22 16:35:41 UTC 2024


On Fri, 19 Jul 2024 18:46:32 GMT, Dan Lutker <dlutker at openjdk.org> wrote:

> Backporting [JDK-8276660](https://bugs.openjdk.org/browse/JDK-8276660) which also fixes a bug in SecureRandom registration that was exposed during testing of https://github.com/corretto/amazon-corretto-crypto-provider. Currently, if you register a new provider then `new SecureRandom` doesn't work right away and only after making some other call like `Cipher.getInstance()` does it return the ACCP provided SecureRandom.
> 
> Ran all "java/security/Provider/", "jdk/jfr/event/" and tier1 tests locally on Linux x64 and they passed.
> 
> "[JDK-8254711](https://bugs.openjdk.org/browse/JDK-8254711): Add java.security.Provider.getService JFR Event" makes changes some of the same functioned but was different in 17u than upstream. To get a cleaner backport I reverted it locally, backported [JDK-8276660](https://bugs.openjdk.org/browse/JDK-8276660) and then re-applied 8254711 to get the updated code around the Map changes.
> 
> Also backporting the followup fixes:
> 8292739: Invalid legacy entries may be returned by Provider.getServic… 
> 8279222: Incorrect legacyMap.get in java.security.Provider after JDK-8276660

This looks okay, but I have questions:

src/java.base/share/classes/java/security/Provider.java line 1290:

> 1288:             s = legacyMap.get(key);
> 1289:             if (s != null && !s.isValid()) {
> 1290:                 legacyMap.remove(key, s);

This hunk seems to be different from the hunk in the original changeset: https://github.com/openjdk/jdk/commit/9b747491de01fd011b09668a67113e80c2b7c708#diff-c2847a8d1997d3d28a13354b05d5e21ac6656e7e17f849bc198715099b9b5bd2L1204-R1286 -- and the follow-ups did not change it as well. Does this stack of patches contain some other patch?

-------------

PR Review: https://git.openjdk.org/jdk17u-dev/pull/2730#pullrequestreview-2190920175
PR Review Comment: https://git.openjdk.org/jdk17u-dev/pull/2730#discussion_r1686149749


More information about the jdk-updates-dev mailing list