RFR 8240902: JDI shared memory connector can use already closed Handles

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Mar 18 21:40:28 UTC 2020


serviceability-dev at ... was included in this email by mistake.
This was only supposed to go to Patricio since the Mach5 links
won't work outside of Oracle. Sigh...

Sorry about the noise folks!

Dan


On 3/18/20 5:37 PM, Daniel D. Daugherty wrote:
> 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