RFR: 8323100: com/sun/tools/attach/StartManagementAgent.java failed with "WaitForSingleObject failed"
David Holmes
dholmes at openjdk.org
Wed Apr 2 03:00:17 UTC 2025
On Tue, 1 Apr 2025 18:35:36 GMT, Alex Menkov <amenkov at openjdk.org> wrote:
>> See bug report for gory details.
>>
>> Short version: in the Windows version of `VirtualMachineImpl::execute`, if an exception occurred after we created the `SocketInputStreamImpl` (which is the test scenario of the failing test), we would close the native `HANDLE` to the pipe twice. But after the first close the `HANDLE` could be reassigned to another object (e.g. the `_ParkHandle` of the `StreamPumper` thread) and the second close would close that `HANDLE` resulting in the failure of `WaitForSingleObject`. (Other failure modes with different invalid handles have also been seen.)
>>
>> Fix: shorten the outer try/catch block so that we only directly close the pipe if the `IOException` happens before we create the `SocketStreamImpl` - after which the closing of the stream will close the pipe `HANDLE`.
>>
>> Testing:
>> - ran the com/sun/tools/attach tets group 2500 times without failure
>> - tiers 3-5 as a sanity check (Windows only)
>>
>> Thanks
>
> Marked as reviewed by amenkov (Reviewer).
Thanks for the review @alexmenkov !
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24346#issuecomment-2771215407
More information about the serviceability-dev
mailing list