Hi Igniters, I am looking into Client DiscoverySpi procedure and see some differences in Client behavior when it trying to connect to servers. Case 1: If the Client can't connect (Connection refused) to some Server it goes to the next IP/port from the ipFinder list. Case 2: But if the client can't succesfully finish Discovery Handshake procedure with the Server it does not try to connect to other IPs. It just throws an TcpDiscoverySpi exception like this back to a user code "class org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [], reconCnt=10, maxAckTimeout=600000, forceSrvMode=false, clientReconnectDisabled=false]"
Case 2 can happen when IP/port was taken by non-Ignite server. For instance, it could be taken by misconfigured HTTP server and the Client just can't unmarshall the server HTTP response: Caused by: java.io.StreamCorruptedException: invalid stream header: 48545450 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:857) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349) at org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.<init>(JdkMarshallerObjectInputStream.java:39) at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:119) So, I would like to change the client behavior in Case 2. It should handle Discovery Handshake unmarshalling error in the same way it does with "Connection refused" errors. It should try to connect to other servers. Your thoughts? Thanks, Alexey -- Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/