RFR 8240902: JDI shared memory connector can use already closed Handles
Daniel D. Daugherty
daniel.daugherty at oracle.com
Wed Mar 18 21:37:30 UTC 2020
Patricio,
This is a separate follow up about the jshell tests. Since I have been
tracking these as part of my GK work and filed a number of those bugs,
I figured I would help analyze them...
JDK-8209848 test/langtools/jdk/jshell tests failed with Accept timed out
https://bugs.openjdk.java.net/browse/JDK-8209848
This bug has been linked to sightings on Linux-X64, SPARC and Win-X64.
While this fix should reduce the number of sightings on Win-X64, it
won't help for Linux-X64 or SPARC.
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8209848
JDK-8184445 JShell tests: fail intermittently if tests are run in high
concurrent mode.
https://bugs.openjdk.java.net/browse/JDK-8184445
The tests you mention below are also mentioned in this bug.
This bug has been linked to sightings on Linux-X64, OSX, SPARC and
Win-X64. While this fix should reduce the number of sightings on
Win-X64, it won't help for Linux-X64, OSX, or SPARC.
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8184445
JDK-8173079 JShell test: jdk/jshell/UserJdiUserRemoteTest.java fails
intermittently
https://bugs.openjdk.java.net/browse/JDK-8173079
I have high hopes that this bug (on Win*) will be addressed by
this fix (8240902) because this test uses JDI...
Most of the sightings for this bug are for Win-X64 and few SPARC.
The bug also mentions Linux sightings, but I don't see any current
links for Linux:
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8173079
So this fix should help with Win* sightings, but not Linux or SPARC.
JDK-8190912 jdk/jshell/JdiHangingListenExecutionControlTest.java failed with
timeout waiting for connection
https://bugs.openjdk.java.net/browse/JDK-8190912
I have high hopes that this bug (on Win*) will be addressed by
this fix (8240902) because this test uses JDI...
Most of the sightings for this bug are for Win-X64; there is one
Linux and one OSX.
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8190912
So this fix should help with Win* sightings, but not Linux or OSX.
JDK-8207166 langtools/jdk/jshell/JdiHangingLaunchExecutionControlTest.java
https://bugs.openjdk.java.net/browse/JDK-8207166
I have high hopes that this bug will be addressed by this fix
(8240902) because this test uses JDI...
The one linked sighting with platform info is for Win-X64.
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8207166
JDK-8235780 jdk/jshell/FailOverExecutionControlDyingLaunchTest.java
fails during setup
https://bugs.openjdk.java.net/browse/JDK-8235780
I have high hopes that this bug (on Win*) will be addressed by
this fix (8240902) because this test uses JDI...
This bug has been linked to sightings on Linux-X64 and Win-X64.
While this fix should reduce the number of sightings on Win-X64,
it won't help for Linux-X64.
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8235780
JDK-8239930 jdk/jshell/UserJdiUserRemoteTest.java fails due to agentvm
mode timeout
https://bugs.openjdk.java.net/browse/JDK-8239930
I have high hopes that this bug will be addressed by this fix
(8240902) because this test uses JDI...
Both sightings linked to this bug are for Win-X64:
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8239930
JDK-8240531 jshell/FailOverExecutionControlDyingLaunchTest.java fails
due to agentvm mode timeout
https://bugs.openjdk.java.net/browse/JDK-8240531
I have high hopes that this bug will be addressed by this fix
(8240902) because this test uses JDI...
The three sightings linked to this bug are for Win-X64:
https://mach5.us.oracle.com/mdash/bugHistory?search=bugId%3AJDK-8240531
Okay... that's it for the jshell bugs that I track that have been
spotted on Win-X64 (and usually other platforms too).
Dan
On 3/17/20 4:14 PM, Patricio Chilano wrote:
> Hi all, ...
>
> Please review the following patch:
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8240902
> Webrev: http://cr.openjdk.java.net/~pchilanomate/8240902/v1/webrev/
>
> Calling closeConnection() on an already created/opened connection
> includes calls to CloseHandle() on objects that can still be used by
> other threads. This can lead to either undefined behavior or, as
> detailed in the bug comments, changes of state of unrelated objects.
> This issue was found while debugging the reason behind some jshell
> test failures seen after pushing 8230594. Not as important, but there
> are also calls to closeStream() from createStream()/openStream() when
> failing to create/open a stream that will return after executing
> "CHECK_ERROR(enterMutex(stream, NULL));" without closing the intended
> resources. Then, calling closeConnection() could assert if the reason
> of the previous failure was that the stream's mutex failed to be
> created/opened. These patch aims to address these issues too.
>
> Tested in mach5 with the current baseline, tiers1-3 and several runs
> of open/test/langtools/:tier1 which includes the jshell tests where
> this connector is used. I also applied patch
> http://cr.openjdk.java.net/~pchilanomate/8240902/triggerbug/webrev
> mentioned in the comments of the bug, on top of the baseline and run
> the langtool tests with and without this fix. Without the fix running
> around 30 repetitions already shows failures in tests
> jdk/jshell/FailOverExecutionControlTest.java and
> jdk/jshell/FailOverExecutionControlHangingLaunchTest.java. With the
> fix I run several hundred runs and saw no failures. Let me know if
> there is any additional testing I should do.
>
> As a side note, I see there are a couple of open issues related with
> jshell failures (8209848) which could be related to this bug and
> therefore might be fixed by this patch.
>
> Thanks,
> Patricio
>
More information about the serviceability-dev
mailing list