ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anton Vinogradov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-2079) GridCacheIoManager eats exception trail if it falls into the directed case
Date Tue, 12 Jul 2016 10:58:20 GMT

    [ 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: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 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)

Mime
View raw message