Adding SocketChannel toString to connection exception messages

Alan Bateman Alan.Bateman at
Wed Jan 3 11:37:04 UTC 2018

On 02/01/2018 21:25, Steven Schlansker wrote:
> :
> This would definitely be better than nothing!  But it's still difficult, for example a common allocation pattern for us would be to assign networks to availability zones:
> then if you pick the same last number for a well known service, you might end up with instances at,, -- so depending on which octets are obscured you may end up with no useful information.
> The triggering incident for us was that one of our Amazon ELBs started responding incorrectly (blackholing data) --
> so when you resolve "" you'd get three different IP addresses, and depending on which one
> is picked for the connect operation, you'll get all data blackholed.
Socket/SocketChannel connect take a single address, not a hostname that 
is potentially mapped to multiple addresses. Maybe you mean the Socket 
constructors that takes a hostname and do the lookup before attempt to 
establish a connection?

In any case, if the exception message includes the address/port details 
then it shouldn't matter which constructors are used. Also note that 
when you look at the non-blocking cases then you'll see the exception is 
thrown by finishConnect, not connect. This is nothing reason to handle 
this completely in java and avoid changes to the native code.


More information about the core-libs-dev mailing list