Re: RFR: 8262316: Reducing locks in RSA Blinding [v3]

2021-04-05 Thread Anthony Scarpino
> Hi,
> 
> I need a review of the locking change to the RSA blinding code. The problem 
> was reported that multithreaded performance suffered because there was one 
> global lock on the many blindings operation.  The change reduces locking by 
> using a ConcurrentLinkedQueue to store the different BlindingParameters that 
> other threads maybe using.  The queue size is limited to prevent sudden 
> surges in stored BlindingParameters and a WeakHashMap is still used so the 
> objects can be freed when no longer used.  Performance doubles under high 
> load.
> 
> thanks
> 
> Tony

Anthony Scarpino has updated the pull request incrementally with one additional 
commit since the last revision:

  Use ReentrantLock for put and get

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3296/files
  - new: https://git.openjdk.java.net/jdk/pull/3296/files/e948ecac..dda3ed69

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=3296=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=3296=01-02

  Stats: 21 lines in 1 file changed: 9 ins; 0 del; 12 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3296.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3296/head:pull/3296

PR: https://git.openjdk.java.net/jdk/pull/3296


Re: RFR: 8264554: X509KeyManagerImpl calls getProtectionParameter with incorrect alias

2021-04-05 Thread Xue-Lei Andrew Fan
On Fri, 2 Apr 2021 16:38:14 GMT, Xue-Lei Andrew Fan  wrote:

> In X509KeyManagerImpl.java, a composited  entry alias consists three parts: 
> an UID counter, a builder index and the real entry alias (See the makeAlias() 
> method).  While calling the KeyStore.Builder.getProtectionParameter(String 
> alias) method, the real entry alias should be used instead, rather than the 
> composited entry alias.
> 
> Simple and straightforward update, no new regression test.

ping ...

-

PR: https://git.openjdk.java.net/jdk/pull/3326


Re: RFR: 8263779: SSLEngine reports NEED_WRAP continuously without producing any further output

2021-04-05 Thread Xue-Lei Andrew Fan
On Wed, 31 Mar 2021 20:52:57 GMT, Xue-Lei Andrew Fan  wrote:

> As described in the bug, by connecting the SSLEngine with a misbehaving peer 
> SSL implementation, it can get into a state where it calling `wrap` reports 
> getStatus == OK, getHandshakeStatus === NEED_WRAP but still doesn't produce 
> any further output.   It happens when the output bound is not empty.
> 
> The handshake status could have more precise status if the out bound.  The 
> patch was confirmed by the bug submitter.

ping ...

-

PR: https://git.openjdk.java.net/jdk/pull/3292


Re: RFR: 8262316: Reducing locks in RSA Blinding [v2]

2021-04-05 Thread Anthony Scarpino
On Sat, 3 Apr 2021 05:40:11 GMT, djelinski 
 wrote:

>> If you synchronize `putIfAbsent` but not `get` you'll still get the possible 
>> infinite loop described in the SO post.
>
> Expunging entries is synchronized over an internal data structure, so if you 
> synchronize puts only, nothing prevents expunge (called from get) from 
> running in parallel with put.
> The original code performed big integer exponentiation inside a synchronized 
> block, your code doesn't. I expect substantial performance gains even with 
> synchronization around hash map access, this is why I asked about performance.

I finally see that get() is affected by the locking.  Expunge seems to not lock 
the able which could cause multiple threads get ops to corrupt the map.  I'll 
put a ReentrantLock around the put & get.  I prefer to not use synchronized() 
blocks as ReentrantLock maybe better after Project Loom

Sure, the performance was largely affected by the math ops in the old code.  I 
wanted to eliminate as much of the performance decelerators as possible

-

PR: https://git.openjdk.java.net/jdk/pull/3296


Re: RFR: 8264190: Harden TLS interop tests [v4]

2021-04-05 Thread Rajan Halade
On Wed, 31 Mar 2021 10:53:34 GMT, Fernando Guallini  
wrote:

>> Occasional interop tests failures may occur when making use of the 
>> test/jdk/javax/net/ssl/TLSCommon/interop framework since there is no 
>> assurance the selected available port it is still free at the time a server 
>> using the framework starts up, for instance, by command line. To mitigate 
>> intermittent failures, this patch updates interop/BaseInteropTest.java in 
>> order to validate the server is alive and if not, retry to create a valid 
>> server.
>> 
>> In addition, Utilities::isSessionResumed implementation is now comparing 
>> equality of first and second session creation time to validate session 
>> resumption
>
> Fernando Guallini has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   add max_retries count, move shell methods to ProcUtils and add win methods

Marked as reviewed by rhalade (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/3218


Integrated: 8248862: Implement Enhanced Pseudo-Random Number Generators

2021-04-05 Thread Jim Laskey
On Wed, 18 Nov 2020 13:45:12 GMT, Jim Laskey  wrote:

> This PR is to introduce a new random number API for the JDK. The primary API 
> is found in RandomGenerator and RandomGeneratorFactory. Further description 
> can be found in the JEP https://openjdk.java.net/jeps/356 .
> 
> javadoc can be found at 
> http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
> 
> old PR:  https://github.com/openjdk/jdk/pull/1273

This pull request has now been integrated.

Changeset: a0ec2cb2
Author:Jim Laskey 
URL:   https://git.openjdk.java.net/jdk/commit/a0ec2cb2
Stats: 12973 lines in 27 files changed: 11202 ins; 1590 del; 181 mod

8248862: Implement Enhanced Pseudo-Random Number Generators

Reviewed-by: darcy

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v42]

2021-04-05 Thread Jim Laskey
> This PR is to introduce a new random number API for the JDK. The primary API 
> is found in RandomGenerator and RandomGeneratorFactory. Further description 
> can be found in the JEP https://openjdk.java.net/jeps/356 .
> 
> javadoc can be found at 
> http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
> 
> old PR:  https://github.com/openjdk/jdk/pull/1273

Jim Laskey has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains 78 commits:

 - Merge branch 'master' into 8248862
 - Fix NotCompliantCauseTest to not rely on Random not being a bean
 - Merge branch 'master' into 8248862
 - Correct return type of RandomGeneratorFactory.of
 - Merge branch 'master' into 8248862
 - CSR review revisions
 - CSR review updates
 - Removed @since from nextDouble ThreadLocalRandom
 - RandomGeneratorFactory::all(Class category) @implNote was out of date
 - Clarify all()
 - ... and 68 more: https://git.openjdk.java.net/jdk/compare/a8005efd...ffd982b0

-

Changes: https://git.openjdk.java.net/jdk/pull/1292/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk=1292=41
  Stats: 12973 lines in 27 files changed: 11202 ins; 1590 del; 181 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1292.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1292/head:pull/1292

PR: https://git.openjdk.java.net/jdk/pull/1292