RFR: JDK-8144144 - ORB destroy() leaks filedescriptors after unsuccessful connection

Chris Hegarty chris.hegarty at oracle.com
Mon Jan 11 11:09:42 UTC 2016


On 11/01/16 10:39, Mark Sheppard wrote:
> OK thanks Chris
>
> my observation was that if only  channel.close()  was invoked then
> the underlying serversocket was not being closed, it remained in the
> LISTEN state.
> This was on Windows 7.

It is not necessary to call close() on the Socket adapter,
after channel.close() has been called.

Alan just reminded me that, on some platforms ( Windows ) the
underlying socket may remain open, if registered with a selector,
even after calling closed, until the the selector fires. This may
help explain why you seen the above behavior.

-Chris.

> I'll check this again  ...
>
> regards
> Mark
>
> On 11/01/2016 06:32, Chris Hegarty wrote:
>> On 8 Jan 2016, at 17:49, Mark Sheppard <mark.sheppard at oracle.com> wrote:
>>
>>> Hi
>>>    please oblige and review the following changes
>>> http://cr.openjdk.java.net/~msheppar/8144144/webrev/
>> In SelectorImpl.clearDeferredRegistrations() there is no need to call
>> close()
>> on the Socket returned from channel.socket(), since you have already
>> closed the channel.
>>
>> -Chris.
>>
>>> which addresses the issue
>>> https://bugs.openjdk.java.net/browse/JDK-8144144
>>>
>>> the changes ensure that an Acceptor and its associated
>>> ServerSocket/ServerSocketChannel
>>> are closed.
>>>
>>> regards
>>> Mark
>



More information about the core-libs-dev mailing list