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

Andrey Velichko commented on IGNITE-2079:
-----------------------------------------

If there are Exceptions inside notifyCallback0, we can lose event onUpdate for 
ContinuousQuery.setLocalListener
see line 674 of CacheContinuousQueryHandler.notifyCallback0

There are same solutions

1 - (Anton Vinogradov) Add new metric to CacheMetrics - for example 
onUpdatedContinuousQueryFatal
and register error using IgniteExceptionRegistry to allow user see exception 
details via Visor/VisorConsole.

2 - If has Exception, call method onUpdated(Iterable<CacheEntryEvent<? extends 
K, ? extends V>> evts) add set evts == null

3 - Add method onError() to interface CacheEntryUpdatedListener or make 
abstract class for compatibility

        public interface CacheEntryUpdatedListener<K, V> extends 
CacheEntryListener<K, V> {
            void onError(IgniteCheckedException ex);
            void onUpdated(Iterable<CacheEntryEvent<? extends K, ? extends V>> 
var1) throws CacheEntryListenerException;
        }

> 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: important
>             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.workday.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)

Reply via email to