[ https://issues.apache.org/jira/browse/IGNITE-11730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16816200#comment-16816200 ]
Ilya Kasnacheev commented on IGNITE-11730: ------------------------------------------ [~akalashnikov] seems like this fix is working, I can no longer cause clients to segment. > Discovery Compression check fails when nodes reconnect to cluster > ----------------------------------------------------------------- > > Key: IGNITE-11730 > URL: https://issues.apache.org/jira/browse/IGNITE-11730 > Project: Ignite > Issue Type: Bug > Components: general > Affects Versions: 2.7 > Reporter: Ilya Kasnacheev > Assignee: Anton Kalashnikov > Priority: Major > > There is a check that Discovery Data Bag compression is supported by all > nodes. > Apparently this check does not work when nodes reconnect after server > restart. When there is at least one client node that does not support this > feature, clients will still send zipped data that server would not > understand, leaving to following server error: > {code} > [15:46:47,101][SEVERE][tcp-disco-msg-worker-#2][TcpDiscoverySpi] Failed to > unmarshal discovery data for component: 0 > class org.apache.ignite.IgniteCheckedException: Failed to deserialize object > with given class loader: sun.misc.Launcher$AppClassLoader@18b4aac2 > at > org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:147) > at > org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94) > at > org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:161) > at > org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82) > at > org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9922) > at > org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:290) > at > org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalJoiningNodeData(DiscoveryDataPacket.java:169) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2076) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddedMessage(ServerImpl.java:4620) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processJoinRequestMessage(ServerImpl.java:4307) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2962) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2729) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7496) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2833) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at > org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7427) > at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) > Caused by: java.io.EOFException > at > java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2638) > at > java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3113) > at > java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853) > at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349) > at > org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.<init>(JdkMarshallerObjectInputStream.java:43) > at > org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:137) > ... 16 more > {code} > and client nodes will fail with following error: > {code} > [15:46:47,175][SEVERE][tcp-client-disco-msg-worker-#4][] Critical system > error detected. Will be handled accordingly to configured handler [hnd=class > o.a.i.failure.StopNodeOrHaltFailureHandler, failureCtx=FailureContext > [type=CRITICAL_ERROR, err=class o.a.i.IgniteException: Node with > BaselineTopology cannot join mixed cluster running in compatibility mode]] > class org.apache.ignite.IgniteException: Node with BaselineTopology cannot > join mixed cluster running in compatibility mode > at > org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.onGridDataReceived(GridClusterStateProcessor.java:727) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$5.onExchange(GridDiscoveryManager.java:899) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2083) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processNodeAddFinishedMessage(ClientImpl.java:2149) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processDiscoveryMessage(ClientImpl.java:2028) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1884) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at > org.apache.ignite.spi.discovery.tcp.ClientImpl$1.body(ClientImpl.java:302) > at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) > {code} > They also seem to make awful lot of Communication connections in process. -- This message was sent by Atlassian JIRA (v7.6.3#76005)