Alexey, I agree. Feel free to file a ticket and provide the fix. You should suppress exceptions on handshake response unmarshall and continue to the rest of IPs. Please make sure that exception trace is still logged if debug level is enabled for logger.
--Yakov 2017-10-20 11:12 GMT+03:00 Alexey Popov <tank2.a...@gmail.com>: > 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/ >