We're updating the issue view to help you get more done. 

Implement option for "abortive" connection close via SO_LINGER option

Description

When client connection are created and closed in rapid succession, depending on TCP implementation (ephemeral port range, 2MSL timeout), there might be a suituation where no socket can be created anymore, since all local ports are used used ("nestat" would show a lot of sockets in TIME_WAIT state, due to 2MSL timeout).

This situation can be prevented if socket is closed "hard", i.e client can send RST flag on TCP packet , instead of usual longish close procedure. There is a special socket option that can be used for hard close (SO_LINGER). in Java, socket.setSoLinger(true,0) will take care of "hard" close of TCP connection.

The task is to provide a boolean parameter tcpAbortiveClose (default false), that helps to prevent ephemeral port shortage , using setSoLinger as described above.

Environment

None

Status

Assignee

Vladislav Vaintroub

Reporter

Vladislav Vaintroub

Labels

None

External issue ID

None

External issue ID

None

Time tracking

0m

Fix versions

Affects versions

1.1.0

Priority

Minor