You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maxim Muzafarov (Jira)" <ji...@apache.org> on 2020/05/30 15:33:00 UTC

[jira] [Updated] (IGNITE-12865) NPE occurs during CQ registration with cache node filter specified.

     [ https://issues.apache.org/jira/browse/IGNITE-12865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maxim Muzafarov updated IGNITE-12865:
-------------------------------------
    Ignite Flags:   (was: Docs Required,Release Notes Required)

> NPE occurs during CQ registration with cache node filter specified.
> -------------------------------------------------------------------
>
>                 Key: IGNITE-12865
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12865
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mikhail Petrov
>            Priority: Minor
>
> NPE occurs during CQ registration if 
>  1. Node that starts cache does not match cache node filter.
>  2. CQ is started on node that matches cache node filter.
> Exception:
> {code:java}
> [2020-04-06 12:49:23,863][ERROR][disco-notifier-worker-#36%ignite.CacheContinousQueryProjectionPredicateTest0%][GridDiscoveryManager] Failed to notify direct custom event listener: StartRoutineDiscoveryMessage [startReqData=StartRequestData [prjPred=o.a.i.CacheContinousQueryProjectionPredicateTest$$Lambda$514/265747429@3529eb45, clsName=o.a.i.CacheContinousQueryProjectionPredicateTest$$Lambda$514/265747429, depInfo=GridDeploymentInfoBean [clsLdrId=9ddf4ee4171-9647add4-b66c-4a10-9bb7-f5ecf7d00001, depMode=SHARED, userVer=0, locDepOwner=false, participants=null], hnd=CacheContinuousQueryHandler [returnValTrans=o.a.i.i.processors.cache.query.continuous.CacheContinuousQueryHandler$1@7dfdf92a, cacheName=default, rmtFilter=null, rmtFilterDep=null, internal=false, notifyExisting=false, oldValRequired=true, sync=false, ignoreExpired=true, taskHash=0, skipPrimaryCheck=false, locOnly=false, keepBinary=false, ackBuf=null, cacheId=1544803905, initTopVer=null, nodeLeft=false, ignoreClsNotFound=false, nodeId=null, routineId=null], bufSize=1, interval=0, autoUnsubscribe=true], keepBinary=false, deserEx=null, routineId=b2b363ed-a9d7-4e4e-a91d-f17e09ba7d7f]
> java.lang.NullPointerException
> 	at org.apache.ignite.internal.processors.continuous.StartRoutineDiscoveryMessage.addUpdateCounters(StartRoutineDiscoveryMessage.java:95)
> 	at org.apache.ignite.internal.processors.continuous.StartRoutineDiscoveryMessage.addUpdateCounters(StartRoutineDiscoveryMessage.java:109)
> 	at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processStartRequest(GridContinuousProcessor.java:1482)
> 	at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.access$400(GridContinuousProcessor.java:117)
> 	at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$2.onCustomEvent(GridContinuousProcessor.java:220)
> 	at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$2.onCustomEvent(GridContinuousProcessor.java:211)
> 	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:670)
> 	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:533)
> 	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2635)
> 	at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2673)
> 	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
> 	at java.lang.Thread.run(Thread.java:748)
> {code}
> Reproducer:
> {code:java}
> /** */
> @Test
> public void test() throws Exception {
>     IgniteEx filteredNode = startGrid(0);
>     IgniteEx cacheStoreNode = startGrid(1);
>     filteredNode.cluster().state(ClusterState.ACTIVE);
>     UUID filteredNodeId = filteredNode.localNode().id();
>     filteredNode.createCache(new CacheConfiguration<>(DEFAULT_CACHE_NAME)
>         .setNodeFilter(node -> !node.id().equals(filteredNodeId)));
>     ContinuousQuery<Object, Object> qry = new ContinuousQuery<>();
>     qry.setLocalListener(evts -> {
>         //No-op.
>     });
>     cacheStoreNode.cache(DEFAULT_CACHE_NAME).query(qry);
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)