[jira] [Comment Edited] (IGNITE-2079) GridCacheIoManager eats exception trail if it falls into the directed case
[ https://issues.apache.org/jira/browse/IGNITE-2079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1192#comment-1192 ] Anton Vinogradov edited comment on IGNITE-2079 at 10/7/16 2:18 PM: --- Dmitriy, I've checked and refactored your changes (Codestyle fixed and Test refactored) Please review my changes. was (Author: avinogradov): Dmitry, I've checked and refactored your changes (Codestyle fixed and Test refactored) Please review my changes. > GridCacheIoManager eats exception trail if it falls into the directed case > -- > > Key: IGNITE-2079 > URL: https://issues.apache.org/jira/browse/IGNITE-2079 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Dmitriy Govorukhin > Labels: ignite-3424 > Fix For: 1.8 > > Attachments: IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java > > > During a recent test I have run into an issue where a storage disabled client > of a Fabric that has services deployed for which the client does not have the > fabric in the class path failed with the following exception: > com.company.fabric.HelloWorldTest STANDARD_ERROR > Nov 08, 2015 6:15:20 PM org.apache.ignite.logger.java.JavaLogger error > SEVERE: Failed to process message > [senderId=30775397-457a-400f-a6c9-077c9e762d61, messageType=class > o.a.i.i.processors.cache.query.GridCacheQueryResponse] > class org.apache.ignite.IgniteCheckedException: Failed to send response to > node. Unsupported direct type [message=GridCacheQueryResponse [finished=true, > reqId=5, err=null, fields=false, metadata=null]] > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:546) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:272) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:77) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1078) > at > org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2302) > at > org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:992) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106) > at > org.apache.ignite.internal.managers.communication.GridIoManager$6.run(GridIoManager.java:961) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > This unfortunately gives me 0 information to work on to resolve the issue, as > the original unmarshalling exception (from the JdkMarshaller) was eaten as > this is the code for the default process failed message: > default: > throw new IgniteCheckedException("Failed to send response to node. > Unsupported direct type [message=" > + msg + "]"); > } > you should also include the original stack from msg.getError() in the newly > thrown IgniteCheckedException -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-2079) GridCacheIoManager eats exception trail if it falls into the directed case
[ https://issues.apache.org/jira/browse/IGNITE-2079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15373236#comment-15373236 ] Anton Vinogradov edited comment on IGNITE-2079 at 7/12/16 5:04 PM: --- Andrey, 1) Did you check that original "Class can not be unmarshalled." are inside msg.classError()? 2) Each get should be cashed at local variable in case it used more than once, eg {{ctx.kernalContext(). ...}} 3) Please use {{GridTestUtils.waitForCondition -> unhandledExceptionCounter.get() == metr.executions() == metr.fails() == 1}} instead of {{unhandledExceptionDownLatch}} 4) Replace {{throw new IgniteException("This line newer calls");}} with fail(...). 5) Possible, we have to add put from another node and handle it {{jcache(1).put(testKey2, "value2");}} 6) Seems you duplicated line {{suite.addTestSuite(IgniteCacheContinuousQueryBackupQueueTest.class);}} 7) Use {{log}} already defined at {{GridAbstractTest}} instead of {{private GridStringLogger stringLogger = new GridStringLogger();}} was (Author: avinogradov): Andrey, 1) Did you check that original "Class can not be unmarshalled." are inside msg.classError()? 2) Each get should be cashed at local variable in case it used more than once, eg {{ctx.kernalContext(). ...}} 3) Please use {{GridTestUtils.waitForCondition -> unhandledExceptionCounter.get() == metr.executions() == metr.fails() == 1}} instead of {{unhandledExceptionDownLatch}} 4) Replace {{throw new IgniteException("This line newer calls");}} with fail(...). 5) Possible, we have to add put from another node and handle it {{jcache(1).put(testKey2, "value2");}} 6) Seems you duplicated line {{suite.addTestSuite(IgniteCacheContinuousQueryBackupQueueTest.class);}} > GridCacheIoManager eats exception trail if it falls into the directed case > -- > > Key: IGNITE-2079 > URL: https://issues.apache.org/jira/browse/IGNITE-2079 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Andrey Velichko > Labels: ignite-3424 > Fix For: 1.7 > > Attachments: IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java > > > During a recent test I have run into an issue where a storage disabled client > of a Fabric that has services deployed for which the client does not have the > fabric in the class path failed with the following exception: > com.company.fabric.HelloWorldTest STANDARD_ERROR > Nov 08, 2015 6:15:20 PM org.apache.ignite.logger.java.JavaLogger error > SEVERE: Failed to process message > [senderId=30775397-457a-400f-a6c9-077c9e762d61, messageType=class > o.a.i.i.processors.cache.query.GridCacheQueryResponse] > class org.apache.ignite.IgniteCheckedException: Failed to send response to > node. Unsupported direct type [message=GridCacheQueryResponse [finished=true, > reqId=5, err=null, fields=false, metadata=null]] > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:546) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:272) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:77) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1078) > at > org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2302) > at > org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:992) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106) > at > org.apache.ignite.internal.managers.communication.GridIoManager$6.run(GridIoManager.java:961) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > This unfortunately gives me 0 information to work on to resolve the issue, as > the original unmarshalling exception (from the JdkMarshaller) was eaten as > this is the code for the default process failed message: > default: > throw new IgniteCheckedException("Failed to send response to node. > Unsupported direct type [message=" > + msg + "]"); > } > you should also include the original stack from msg.getError() in the newly > thrown IgniteCheckedException -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (IGNITE-2079) GridCacheIoManager eats exception trail if it falls into the directed case
[ https://issues.apache.org/jira/browse/IGNITE-2079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15372660#comment-15372660 ] Anton Vinogradov edited comment on IGNITE-2079 at 7/12/16 10:57 AM: Andrey, Some comments below: 1) Use logger instead of {{System.out.println(...)}} 2) Please follow rules explained here: https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines#CodingGuidelines-SemanticUnits For example {noformat} jcache(0).put(testKey, "value"); latchAwait = latch.await(1000, TimeUnit.MILLISECONDS); {noformat} should be separated by one empty line 3) I think that good place to record {{EVT_UNHANDLED_EXCEPTION}} is {noformat} default: // Here throw new IgniteCheckedException("Failed to send response to node. Unsupported direct type [message=" + msg + "]", msg.classError()); {noformat} at {{GridCacheIoManager}} 4) I'm not sure I understand reason of resending GridCacheQueryResponse {noformat} +GridCacheQueryResponse res = (GridCacheQueryResponse)msg; + +cctx.io().sendOrderedMessage( +ctx.node(nodeId), +TOPIC_CACHE.topic(QUERY_TOPIC_PREFIX, nodeId, res.requestId()), +res, +ctx.ioPolicy(), +Long.MAX_VALUE); {noformat} 5) Please use JUnit asserts, eg {{assertEquals(...)}} at tests instead of {{assert}} 6) {{latchAwait = latch.await(1000, TimeUnit.MILLISECONDS);}} should be replaced by {noformat}assertTrue(latch.await(1000, TimeUnit.MILLISECONDS);){noformat} was (Author: avinogradov): Andrey, Some comments below: 1) Use logger instead of {{System.out.println(...)}} 2) Please follow rules explained here: https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines#CodingGuidelines-SemanticUnits For example {noformat} jcache(0).put(testKey, "value"); latchAwait = latch.await(1000, TimeUnit.MILLISECONDS); {noformat} should be separated by one empty line 3) I think that good place to record {{EVT_UNHANDLED_EXCEPTION}} is {noformat} default: // Here throw new IgniteCheckedException("Failed to send response to node. Unsupported direct type [message=" + msg + "]", msg.classError()); {noformat} at {{GridCacheIoManager}} 4) I'm not sure i understand reason of resending GridCacheQueryResponse {noformat} +GridCacheQueryResponse res = (GridCacheQueryResponse)msg; + +cctx.io().sendOrderedMessage( +ctx.node(nodeId), +TOPIC_CACHE.topic(QUERY_TOPIC_PREFIX, nodeId, res.requestId()), +res, +ctx.ioPolicy(), +Long.MAX_VALUE); {noformat} 5) Please use JUnit asserts, eg {{assertEquals(...)}} at tests instead of {{assert}} 6) {{latchAwait = latch.await(1000, TimeUnit.MILLISECONDS);}} should be replaced by {{assertTrue(latch.await(1000, TimeUnit.MILLISECONDS);)}} > GridCacheIoManager eats exception trail if it falls into the directed case > -- > > Key: IGNITE-2079 > URL: https://issues.apache.org/jira/browse/IGNITE-2079 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Andrey Velichko > Labels: ignite-3424 > Fix For: 1.7 > > Attachments: IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java > > > During a recent test I have run into an issue where a storage disabled client > of a Fabric that has services deployed for which the client does not have the > fabric in the class path failed with the following exception: > com.company.fabric.HelloWorldTest STANDARD_ERROR > Nov 08, 2015 6:15:20 PM org.apache.ignite.logger.java.JavaLogger error > SEVERE: Failed to process message > [senderId=30775397-457a-400f-a6c9-077c9e762d61, messageType=class > o.a.i.i.processors.cache.query.GridCacheQueryResponse] > class org.apache.ignite.IgniteCheckedException: Failed to send response to > node. Unsupported direct type [message=GridCacheQueryResponse [finished=true, > reqId=5, err=null, fields=false, metadata=null]] > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:546) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:272) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:77) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1078) > at > org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2302) > at >
[jira] [Comment Edited] (IGNITE-2079) GridCacheIoManager eats exception trail if it falls into the directed case
[ https://issues.apache.org/jira/browse/IGNITE-2079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15372660#comment-15372660 ] Anton Vinogradov edited comment on IGNITE-2079 at 7/12/16 10:34 AM: Andrey, Some comments below: 1) Use logger instead of {{System.out.println(...)}} 2) Please follow rules explained here: https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines#CodingGuidelines-SemanticUnits For example {noformat} jcache(0).put(testKey, "value"); latchAwait = latch.await(1000, TimeUnit.MILLISECONDS); {noformat} should be separated by one empty line 3) I think that good place to record {{EVT_UNHANDLED_EXCEPTION}} is {noformat} default: // Here throw new IgniteCheckedException("Failed to send response to node. Unsupported direct type [message=" + msg + "]", msg.classError()); {noformat} at {{GridCacheIoManager}} 4) I'm not sure i understand reason of resending GridCacheQueryResponse {noformat} +GridCacheQueryResponse res = (GridCacheQueryResponse)msg; + +cctx.io().sendOrderedMessage( +ctx.node(nodeId), +TOPIC_CACHE.topic(QUERY_TOPIC_PREFIX, nodeId, res.requestId()), +res, +ctx.ioPolicy(), +Long.MAX_VALUE); {noformat} 5) Please use JUnit asserts, eg {{assertEquals(...)}} at tests instead of {{assert}} 6) {{latchAwait = latch.await(1000, TimeUnit.MILLISECONDS);}} should be replaced by {{assertTrue(latch.await(1000, TimeUnit.MILLISECONDS);)}} was (Author: avinogradov): Andrey, Some comments below: 1) Use logger instead of {{System.out.println(...)}} 2) Please follow rules explained here: https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines#CodingGuidelines-SemanticUnits For example {{jcache(0).put(testKey, "value"); latchAwait = latch.await(1000, TimeUnit.MILLISECONDS);}} should be separated by one empty line 3) I think that good place to record {{EVT_UNHANDLED_EXCEPTION}} is {{default: // Here throw new IgniteCheckedException("Failed to send response to node. Unsupported direct type [message=" + msg + "]", msg.classError()); }} at {{GridCacheIoManager}} 4) I'm not sure i understand reason of resending GridCacheQueryResponse {{ +GridCacheQueryResponse res = (GridCacheQueryResponse)msg; + +cctx.io().sendOrderedMessage( +ctx.node(nodeId), +TOPIC_CACHE.topic(QUERY_TOPIC_PREFIX, nodeId, res.requestId()), +res, +ctx.ioPolicy(), +Long.MAX_VALUE); +}} 5) Please use JUnit asserts, eg {{assertEquals(...)}} at tests instead of {{assert}} 6) {{latchAwait = latch.await(1000, TimeUnit.MILLISECONDS);}} should be replaced by {{assertTrue(latch.await(1000, TimeUnit.MILLISECONDS);)}} > GridCacheIoManager eats exception trail if it falls into the directed case > -- > > Key: IGNITE-2079 > URL: https://issues.apache.org/jira/browse/IGNITE-2079 > Project: Ignite > Issue Type: Bug >Reporter: Anton Vinogradov >Assignee: Andrey Velichko > Labels: ignite-3424 > Fix For: 1.7 > > Attachments: IgniteCacheP2pUnmarshallingContinuousQueryErrorTest.java > > > During a recent test I have run into an issue where a storage disabled client > of a Fabric that has services deployed for which the client does not have the > fabric in the class path failed with the following exception: > com.company.fabric.HelloWorldTest STANDARD_ERROR > Nov 08, 2015 6:15:20 PM org.apache.ignite.logger.java.JavaLogger error > SEVERE: Failed to process message > [senderId=30775397-457a-400f-a6c9-077c9e762d61, messageType=class > o.a.i.i.processors.cache.query.GridCacheQueryResponse] > class org.apache.ignite.IgniteCheckedException: Failed to send response to > node. Unsupported direct type [message=GridCacheQueryResponse [finished=true, > reqId=5, err=null, fields=false, metadata=null]] > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processFailedMessage(GridCacheIoManager.java:546) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:272) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:77) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1078) > at > org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2302) > at >