RFR JDK-7092821 "java.security.Provider.getService() is synchronized and became scalability bottleneck"

Valerie Peng valerie.peng at oracle.com
Fri Dec 7 02:58:15 UTC 2018


Right, thanks for catching this. Will fix it in next webrev.

Valerie

On 12/5/2018 7:28 PM, Weijun Wang wrote:
> Hi Valerie
>
> -        map.put("CertPathBuilder.PKIX ValidationAlgorithm",
> -            "RFC5280");
> -        map.put("CertPathValidator.PKIX ValidationAlgorithm",
> -            "RFC5280");
> +        attrs.put("PKIX ValidationAlgorithm", "RFC5280");   <<<<<<<<<< !!!!
> +        add(p, "CertPathBuilder", "PKIX",
> +                "sun.security.provider.certpath.SunCertPathBuilder",
> +                null, attrs);
> +        add(p, "CertPathValidator", "PKIX",
> +                "sun.security.provider.certpath.PKIXCertPathValidator",
> +                null, attrs);
>
> Here, "PKIX" is the algorithm name and not a part of the attribute name.
>
> Other new aliases and attributes look good.
>
> Thanks
> Max
>
>
>> On Nov 22, 2018, at 2:05 AM, Valerie Peng <valerie.peng at oracle.com> wrote:
>>
>> Hi,
>>
>> Can someone help reviewing this fix?
>>
>> Besides changing the Provider class to use ConcurrentHashMap in order to reduce the lock contention on Provider.getService() calls, I also changed the security providers in java.base module to register through putService(...) calls. Performance is manually verified and mach5 run is clean.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-7092821
>> Webrev: http://cr.openjdk.java.net/~valeriep/7092821/webrev.00/
>>
>> Thanks,
>> Valerie
>>
>>
>>
>>
>>


More information about the security-dev mailing list