[ https://issues.apache.org/jira/browse/IGNITE-732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14558163#comment-14558163 ]
Ilya Suntsov edited comment on IGNITE-732 at 5/25/15 12:22 PM: --------------------------------------------------------------- Steps for reproduction: 1. Start 3 nodes with ExampleNodeStartup 2. Start StreamWords 3. Start QueryWords I observed the following behavior: {noformat} [14:26:26] __________ ________________ [14:26:26] / _/ ___/ |/ / _/_ __/ __/ [14:26:26] _/ // (7 7 // / / / / _/ [14:26:26] /___/\___/_/|_/___/ /_/ /___/ [14:26:26] [14:26:26] ver. 1.0.7-QAIS2501#20150522-sha1:050f4292 [14:26:26] 2015 Copyright(C) Apache Software Foundation [14:26:26] [14:26:26] Quiet mode. [14:26:26] ^-- Logging to file '/Users/gridgain/Downloads/gridgain-enterprise-fabric-7.0.7-QAIS2501/work/log/ignite-364df547.log' [14:26:26] ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat} [14:26:26] [14:26:26] Initial heap size is 192MB (should be no less than 512MB, use -Xms512m -Xmx512m). [14:26:26] Configured plugins: [14:26:26] ^-- GridGain 7.0.7-QAIS2501#20150525-sha1:e7f977ac [14:26:26] ^-- 2015 Copyright(C) GridGain Systems [14:26:26] [14:26:30] Attempting to start more nodes than physical RAM available on current host (this can cause significant slowdown) [14:26:32,975][ERROR][main][GridEntLicenseProcessor] License bursting ==> Maximum number of nodes (2) is exceeded. [14:26:32,975][ERROR][main][GridEntLicenseProcessor] ^-- Contact sa...@gridgain.com for further assistance. Make sure to include your license ID: 14177F1A-5B5A-4F9C-BC55-F7335715F311 [14:26:32,976][ERROR][main][GridEntLicenseProcessor] License grace/burst period - left 1 hour. [14:26:32] Performance suggestions for grid (fix if possible) [14:26:32] To disable, set -DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true [14:26:32] ^-- Disable peer class loading (set 'peerClassLoadingEnabled' to false) [14:26:32] ^-- Disable grid events (remove 'includeEventTypes' from configuration) [14:26:32] [14:26:32] To start Console Management & Monitoring run ignitevisorcmd.{sh|bat} [14:26:32] [14:26:32] Ignite node started OK (id=364df547) [14:26:33] Topology snapshot [ver=5, nodes=5, CPUs=8, heap=13.0GB] [14:26:36] New version is available at http://www.gridgain.com/download/editions/#enterprise-edition: 7.0.5 Query results [avg=4.81, min=1, max=1730] (in,673) (it,585) (to,526) (a,431) (I,422) (that,371) (she,337) (said,288) (or,246) (for,245) Query results [avg=4.50, min=1, max=429] (the,2230) (and,1065) (of,831) (to,796) (a,662) (she,535) (said,424) (was,347) (Alice,276) (you,273) Query results [avg=2.95, min=1, max=266] ... (the,3219) (to,1681) (and,1549) (a,1474) (of,1248) (she,1047) (said,959) (in,876) (it,801) (was,714) [14:27:22] Topology snapshot [ver=6, nodes=4, CPUs=8, heap=11.0GB] [14:27:22] Ignite node stopped OK [uptime=00:00:49:513] Exception in thread "main" javax.cache.CacheException: Failed to run map query remotely. at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:343) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:775) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:866) at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:561) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:513) at org.apache.ignite.examples.streaming.wordcount.QueryWords.main(QueryWords.java:67) 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:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: javax.cache.CacheException: Failed to execute map query on the node: 30a59fd5-ac86-46a6-9c01-1307260a0e6c, Node left the topology. at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.fail(GridReduceQueryExecutor.java:204) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.access$300(GridReduceQueryExecutor.java:61) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor$2.onEvent(GridReduceQueryExecutor.java:147) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:745) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:730) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:270) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.recordEvent(GridDiscoveryManager.java:1597) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body0(GridDiscoveryManager.java:1787) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body(GridDiscoveryManager.java:1636) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108) at java.lang.Thread.run(Thread.java:745) {noformat} Is it correct or not? was (Author: ustas): Steps for reproduction: 1. Start 3 nodes with ExampleNodeStartup 2. Start StreamWords 3. Start QueryWords I observed the following behavior: {noformat} [14:26:26] __________ ________________ [14:26:26] / _/ ___/ |/ / _/_ __/ __/ [14:26:26] _/ // (7 7 // / / / / _/ [14:26:26] /___/\___/_/|_/___/ /_/ /___/ [14:26:26] [14:26:26] ver. 1.0.7-QAIS2501#20150522-sha1:050f4292 [14:26:26] 2015 Copyright(C) Apache Software Foundation [14:26:26] [14:26:26] Quiet mode. [14:26:26] ^-- Logging to file '/Users/gridgain/Downloads/gridgain-enterprise-fabric-7.0.7-QAIS2501/work/log/ignite-364df547.log' [14:26:26] ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat} [14:26:26] [14:26:26] Initial heap size is 192MB (should be no less than 512MB, use -Xms512m -Xmx512m). [14:26:26] Configured plugins: [14:26:26] ^-- GridGain 7.0.7-QAIS2501#20150525-sha1:e7f977ac [14:26:26] ^-- 2015 Copyright(C) GridGain Systems [14:26:26] [14:26:30] Attempting to start more nodes than physical RAM available on current host (this can cause significant slowdown) [14:26:32,975][ERROR][main][GridEntLicenseProcessor] License bursting ==> Maximum number of nodes (2) is exceeded. [14:26:32,975][ERROR][main][GridEntLicenseProcessor] ^-- Contact sa...@gridgain.com for further assistance. Make sure to include your license ID: 14177F1A-5B5A-4F9C-BC55-F7335715F311 [14:26:32,976][ERROR][main][GridEntLicenseProcessor] License grace/burst period - left 1 hour. [14:26:32] Performance suggestions for grid (fix if possible) [14:26:32] To disable, set -DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true [14:26:32] ^-- Disable peer class loading (set 'peerClassLoadingEnabled' to false) [14:26:32] ^-- Disable grid events (remove 'includeEventTypes' from configuration) [14:26:32] [14:26:32] To start Console Management & Monitoring run ignitevisorcmd.{sh|bat} [14:26:32] [14:26:32] Ignite node started OK (id=364df547) [14:26:33] Topology snapshot [ver=5, nodes=5, CPUs=8, heap=13.0GB] [14:26:36] New version is available at http://www.gridgain.com/download/editions/#enterprise-edition: 7.0.5 Query results [avg=4.81, min=1, max=1730] (in,673) (it,585) (to,526) (a,431) (I,422) (that,371) (she,337) (said,288) (or,246) (for,245) Query results [avg=4.50, min=1, max=429] (the,2230) (and,1065) (of,831) (to,796) (a,662) (she,535) (said,424) (was,347) (Alice,276) (you,273) Query results [avg=2.95, min=1, max=266] ... (the,3219) (to,1681) (and,1549) (a,1474) (of,1248) (she,1047) (said,959) (in,876) (it,801) (was,714) [14:27:22] Topology snapshot [ver=6, nodes=4, CPUs=8, heap=11.0GB] [14:27:22] Ignite node stopped OK [uptime=00:00:49:513] Exception in thread "main" javax.cache.CacheException: Failed to run map query remotely. at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:343) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:775) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryTwoStep(IgniteH2Indexing.java:866) at org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:561) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:513) at org.apache.ignite.examples.streaming.wordcount.QueryWords.main(QueryWords.java:67) 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:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: javax.cache.CacheException: Failed to execute map query on the node: 30a59fd5-ac86-46a6-9c01-1307260a0e6c, Node left the topology. at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.fail(GridReduceQueryExecutor.java:204) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.access$300(GridReduceQueryExecutor.java:61) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor$2.onEvent(GridReduceQueryExecutor.java:147) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:745) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:730) at org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:270) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.recordEvent(GridDiscoveryManager.java:1597) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body0(GridDiscoveryManager.java:1787) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body(GridDiscoveryManager.java:1636) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:108) at java.lang.Thread.run(Thread.java:745) {noformat} Is it correct or not? > 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)