[ https://issues.apache.org/jira/browse/IGNITE-732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yakov Zhdanov closed IGNITE-732. -------------------------------- > IgniteCache.size() should not fail in case of topology changes. > --------------------------------------------------------------- > > Key: IGNITE-732 > URL: https://issues.apache.org/jira/browse/IGNITE-732 > Project: Ignite > Issue Type: Bug > Components: cache > Reporter: Dmitriy Setrakyan > Assignee: Yakov Zhdanov > Priority: Blocker > Fix For: sprint-5 > > > I believe that cache.size() method fails if topology changes during the > execution. I got the following error when executing word-count {{QueryWords}} > class and removing one of the server nodes. > {code} > Query results [total=1003726, avg=4.34, min=1, max=1314] > (the,20) > (and,9) > (a,8) > (in,8) > (of,8) > (that,5) > (said,4) > (on,4) > (for,4) > (to,4) > [17:35:54] Topology snapshot [ver=5, nodes=3, CPUs=4, heap=4.0GB] > [17:35:54,772][ERROR][disco-event-worker-#46%null%][GridTaskWorker] Failed to > obtain remote job result policy for result from ComputeTask.result(..) method > (will fail the whole task): GridJobResultImpl [job=C1 [arg=null], > sib=GridJobSiblingImpl > [sesId=9a42d9fac41-8437ac61-27ef-4e4b-951d-a29b18346bfe, > jobId=ba42d9fac41-833cae7a-295f-4578-a6b0-f4b6d3a1bf50, > nodeId=833cae7a-295f-4578-a6b0-f4b6d3a1bf50, isJobDone=false], > jobCtx=GridJobContextImpl > [jobId=ba42d9fac41-833cae7a-295f-4578-a6b0-f4b6d3a1bf50, attrs={}], > node=TcpDiscoveryNode [id=833cae7a-295f-4578-a6b0-f4b6d3a1bf50, > addrs=[192.168.2.10, 0:0:0:0:0:0:0:1, 127.0.0.1], > sockAddrs=[/192.168.2.10:47500, /0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500], > discPort=47500, order=1, intOrder=1, loc=false, > ver=1.0.0#19691231-sha1:00000000, isClient=false], ex=class > o.a.i.cluster.ClusterTopologyException: Node has left grid: > 833cae7a-295f-4578-a6b0-f4b6d3a1bf50, hasRes=true, isCancelled=false, > isOccupied=true] > class org.apache.ignite.cluster.ClusterTopologyException: Node has left grid: > 833cae7a-295f-4578-a6b0-f4b6d3a1bf50 > at > org.apache.ignite.internal.processors.task.GridTaskWorker.onNodeLeft(GridTaskWorker.java:1204) > at > org.apache.ignite.internal.processors.task.GridTaskProcessor$TaskDiscoveryListener.onEvent(GridTaskProcessor.java:1180) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:739) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:724) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:272) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.recordEvent(GridDiscoveryManager.java:1533) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body0(GridDiscoveryManager.java:1720) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body(GridDiscoveryManager.java:1572) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108) > at java.lang.Thread.run(Thread.java:745) > [17:35:55] Ignite node stopped OK [uptime=02:45:01:791] > Exception in thread "main" javax.cache.CacheException: class > org.apache.ignite.IgniteCheckedException: Node has left grid: > 833cae7a-295f-4578-a6b0-f4b6d3a1bf50 > at > org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1808) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxy.cacheException(IgniteCacheProxy.java:1463) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxy.size(IgniteCacheProxy.java:594) > at > org.apache.ignite.examples.streaming.wordcount.QueryWords.main(QueryWords.java:69) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:483) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) > Caused by: class org.apache.ignite.IgniteCheckedException: Node has left > grid: 833cae7a-295f-4578-a6b0-f4b6d3a1bf50 > at > org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:6715) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:124) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter$68.applyx(GridCacheAdapter.java:3757) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter$68.applyx(GridCacheAdapter.java:3754) > at > org.apache.ignite.internal.util.lang.IgniteClosureX.apply(IgniteClosureX.java:37) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:54) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:28) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:241) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:229) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:359) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:325) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1323) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1291) > at > org.apache.ignite.internal.processors.task.GridTaskWorker$3.apply(GridTaskWorker.java:871) > at > org.apache.ignite.internal.processors.task.GridTaskWorker$3.apply(GridTaskWorker.java:822) > at > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6139) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:822) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:718) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.onNodeLeft(GridTaskWorker.java:1223) > at > org.apache.ignite.internal.processors.task.GridTaskProcessor$TaskDiscoveryListener.onEvent(GridTaskProcessor.java:1180) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:739) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:724) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:272) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.recordEvent(GridDiscoveryManager.java:1533) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body0(GridDiscoveryManager.java:1720) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body(GridDiscoveryManager.java:1572) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108) > at java.lang.Thread.run(Thread.java:745) > Caused by: class org.apache.ignite.cluster.ClusterTopologyException: Node has > left grid: 833cae7a-295f-4578-a6b0-f4b6d3a1bf50 > at > org.apache.ignite.internal.processors.task.GridTaskWorker.onNodeLeft(GridTaskWorker.java:1204) > ... 9 more > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)