ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Velichko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-2079) GridCacheIoManager eats exception trail if it falls into the directed case
Date Mon, 04 Jul 2016 14:55:10 GMT

    [ 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

	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
> class org.apache.ignite.IgniteCheckedException: Failed to send response to node. Unsupported
direct type [message=GridCacheQueryResponse [finished=true, reqId=5, err=null, fields=false,
>  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

View raw message