On 23/07/2020 15:21, Charlie Gracie wrote:
Hi Daniel,

Thanks for the review!

Yep, I will need a sponsor for this.

OK - I will import your changes and test them.
If successful - I'll push them for you.
I'll report on this list. I might not get
on on this until next week though.

best regards,

-- daniel


Cheers,
Charlie Gracie

On 2020-07-23, 8:38 AM, "Daniel Fuchs" <daniel.fu...@oracle.com> wrote:
Hi Charlie,

Thanks for finding and fixing this!
I have fixed many such failures in the logging tests in
the past.

Your changes look good to me.

Reviewed.

Do you need a sponsor for this?

best regards,

-- daniel

On 22/07/2020 20:38, Charlie Gracie wrote:
Hi,

I believe there was a subtle timing hole introduced into the 
HttpURLConWithProxy.java test with the
fix for JDK-8183369 [1]. In our local tests, when using GC stress modes, we 
consistently get a failure
reported as:

"Execution failed: `main' threw exception: java.lang.RuntimeException: Connection 
not retried with proxy".

I verified that the Proxy is being used but the messages are not being logged 
with the ProxyHandler. The
issue is caused by back to back calls of Logger.getLogger(String). If a GC 
happens between the two calls
there is no guarantee that the same object will be returned [2]. Since the test 
relies on the log messages
being handled by the new ProxyHandler to pass, it needs to ensure the Logger 
object lives the entire
lifetime of the test.

Here is my proposed fix:
http://cr.openjdk.java.net/~burban/cgracie/logger_fix/webrev0.0/

The easiest way to reproduce is to use the following vm options when running 
the specific test. These options
will force the Shenandoah GC into a continuous GC mode making the test fail 
almost 100% of the time.
-vmoption:-XX:+UseShenandoahGC
-vmoption:-XX:+UnlockDiagnosticVMOptions
-vmoption:-XX:ShenandoahGCHeuristics=aggressive

Thanks,
Charlie Gracie

[1] https://bugs.openjdk.java.net/browse/JDK-8183369
[2] 
https://docs.oracle.com/en/java/javase/14/docs/api/java.logging/java/util/logging/Logger.html#getLogger(java.lang.String)


Reply via email to