[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-07-03 Thread Anton Kalashnikov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16877679#comment-16877679
 ] 

Anton Kalashnikov commented on IGNITE-11914:


[~ibessonov] thanks for changes. Looks good to me.

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Assignee: Ivan Bessonov
>Priority: Major
> Fix For: 2.8
>
> Attachments: DiscoveryDataDeserializationFailureHanderTest.java
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2062)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2282)
>   at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2206)
>   at 
> java.io.ObjectInputStream

[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-07-02 Thread Ivan Bessonov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876870#comment-16876870
 ] 

Ivan Bessonov commented on IGNITE-11914:


[~akalashnikov] thank you fore the review, I fixed everything according to your 
comments, please take a look.

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Assignee: Ivan Bessonov
>Priority: Major
> Fix For: 2.8
>
> Attachments: DiscoveryDataDeserializationFailureHanderTest.java
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2062)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2282)
>   at java.io.ObjectInputStream.readSerialData(ObjectInputStrea

[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-07-01 Thread Anton Kalashnikov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876028#comment-16876028
 ] 

Anton Kalashnikov commented on IGNITE-11914:


[~ibessonov], In generall your changes looks good for me. But I have one 
proposal: maybe it better to avoid boolean flag(panic mark) on public api and 
instead  use two methods such as "umarshalData" and 
"unmarshalDataIfPossible"(name of methods can be changed it just the example)

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Assignee: Ivan Bessonov
>Priority: Major
> Fix For: 2.8
>
> Attachments: DiscoveryDataDeserializationFailureHanderTest.java
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2062)
>   at java.io.ObjectInputStream.readObject0(Obj

[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-06-27 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16873967#comment-16873967
 ] 

Ignite TC Bot commented on IGNITE-11914:


{panel:title=--> Run :: All: No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=4204863&buildTypeId=IgniteTests24Java8_RunAll]

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Assignee: Ivan Bessonov
>Priority: Major
> Attachments: DiscoveryDataDeserializationFailureHanderTest.java
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2062)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at 
> java.io.ObjectInputStream.defaultR

[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-06-18 Thread Denis Mekhanikov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866601#comment-16866601
 ] 

Denis Mekhanikov commented on IGNITE-11914:
---

It's actually a tricky question, what should be done in a situation, when 
discovery data cannot be deserialized.

I would say, that if an existing node cannot deserialize data sent from a new 
one, then the joining node should not be let into the cluster.

If we decide to always propagate such failures to the failure handler, then one 
node with some class in discovery data, which is available on that node only, 
will be able to bring down the whole cluster.

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Priority: Major
> Attachments: DiscoveryDataDeserializationFailureHanderTest.java
>
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java

[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-06-18 Thread Denis Mekhanikov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866594#comment-16866594
 ] 

Denis Mekhanikov commented on IGNITE-11914:
---

[~ibessonov] sorry, forgot to attach it.

Fixed.

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Priority: Major
> Attachments: DiscoveryDataDeserializationFailureHanderTest.java
>
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2062)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2282)
>   at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2206)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2064)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:15

[jira] [Commented] (IGNITE-11914) Failures to deserialize discovery data should be handled by a failure handler

2019-06-17 Thread Ivan Bessonov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16865676#comment-16865676
 ] 

Ivan Bessonov commented on IGNITE-11914:


Hi [~dmekhanikov], you said that "Test is attached." but I see no attachments. 
Can you please provide one? Thank you!

> Failures to deserialize discovery data should be handled by a failure handler
> -
>
> Key: IGNITE-11914
> URL: https://issues.apache.org/jira/browse/IGNITE-11914
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7.5
>Reporter: Denis Mekhanikov
>Priority: Major
>
> When a node during join receives a discovery data packet, that it cannot 
> deserialize, then this error is printed to log and not handled in any way. It 
> leads to swallowing potentially important failures.
> For example, a failure to deserialize a continuous query remote filter should 
> be propagated to a failure handler, but it doesn't happen. Test is attached.
> Error message:
> {noformat}
> Failed to unmarshal discovery data for component: 0
> class org.apache.ignite.IgniteCheckedException: Failed to find class with 
> given class loader for unmarshalling (make sure same versions of all classes 
> are available on all nodes or enable peer-class-loading) 
> [clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, 
> cls=org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory]
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:146)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshalZip(IgniteUtils.java:10068)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalData(DiscoveryDataPacket.java:292)
>   at 
> org.apache.ignite.spi.discovery.tcp.internal.DiscoveryDataPacket.unmarshalGridData(DiscoveryDataPacket.java:154)
>   at 
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:2065)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddFinishedMessage(ServerImpl.java:4882)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2964)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2696)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorker.body(ServerImpl.java:7527)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2818)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>   at 
> org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerThread.body(ServerImpl.java:7458)
>   at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:61)
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.ignite.tests.p2p.CacheDeploymentEntryEventFilterFactory
>   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8672)
>   at 
> org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
>   at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1863)
>   at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
>   at 
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandlerV2.readExternal(CacheContinuousQueryHandlerV2.java:179)
>   at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2113)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2062)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>   at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2282)
>   at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2206)
>   at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2064)
>   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568)
>