Hi,

Thank for pointing out to this issue. Local port range set to 0 presently doesn't work at least for TcpCommunicationSpi and TcpDiscoverySpi. However SPIs support it.

In my understanding the condition has to changed to the following one (from < to <=).

x = port; x*<=*  port + range

But this will violate the following from TcpCommunicationSpi.setLocalPortRange

implementation will try to increment the port number for as long as it is less than * initial value plus this range.

So it means that setLocalPortRange has to be treated a different way and in fact setLocalPortRange=0 will be the same as setLocalPortRange=1

I've copied the message to @dev list to get more thoughts on this.

Igniters, any thoughts? Should localPortRange=0 work the same as localPortRange=1?

--
Denis

On 1/18/2016 12:21 PM, DLopez wrote:
Hi,

While experimenting, as I was trying to just allow specific ports, I set the
LocalPortRange of my configurations to 0. The result was not what I expected
as you end up getting a NPE when starting the cluster. I traced the issue in
the source and the cause is that when opening ports, the routine goes from
the x = port; x < port + range. So you end up with no server socket, and
when you try to listen to it, kaboum.

So I think it might be interesting to clarify the docs, as the current
definition (starting from getLocalPort() up until getLocalPort() +
locPortRange) can be misunderstood and the handling of localport value,
throwing an error if it is set to an incorrect value.

Just to prevent other people having the same issue :). Not a top priority,
of course, but such an easy change can prevent more support messages to the
list to... What do you think?

S!
D.



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/TcpDiscoverySpi-setLocalPortRange-value-must-be-0-tp2606.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to