[
https://issues.apache.org/jira/browse/IGNITE-2079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15372660#comment-15372660
]
Anton Vinogradov edited comment on IGNITE-2079 at 7/12/16 10:32 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
{{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);)}}
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
{{case 59: {
+ 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
> 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)