Return-Path: X-Original-To: apmail-ignite-issues-archive@minotaur.apache.org Delivered-To: apmail-ignite-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BFDB2188AD for ; Wed, 29 Apr 2015 19:47:34 +0000 (UTC) Received: (qmail 31602 invoked by uid 500); 29 Apr 2015 19:47:34 -0000 Delivered-To: apmail-ignite-issues-archive@ignite.apache.org Received: (qmail 31578 invoked by uid 500); 29 Apr 2015 19:47:34 -0000 Mailing-List: contact issues-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list issues@ignite.incubator.apache.org Received: (qmail 31563 invoked by uid 99); 29 Apr 2015 19:47:34 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Apr 2015 19:47:34 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [54.191.145.13] (HELO mx1-us-west.apache.org) (54.191.145.13) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Apr 2015 19:47:27 +0000 Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with SMTP id 32EC6283F3 for ; Wed, 29 Apr 2015 19:47:07 +0000 (UTC) Received: (qmail 29595 invoked by uid 99); 29 Apr 2015 19:47:07 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Apr 2015 19:47:07 +0000 Date: Wed, 29 Apr 2015 19:47:07 +0000 (UTC) From: "Andrey Gura (JIRA)" To: issues@ignite.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (IGNITE-732) IgniteCache.size() should not fail in case of topology changes. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/IGNITE-732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14520059#comment-14520059 ] Andrey Gura edited comment on IGNITE-732 at 4/29/15 7:46 PM: ------------------------------------------------------------- 1. Done with {{IgniteClosure}}. {{ComputeTask}} isn't best way to do it, because we need run it only on cache data nodes. 2. Done. But at unlucky time closure start on node where cache stopped already but node is still alive. As result we have NPE. Is it ok to catch them? 3. Now {{ClusterTopologyException}} logs only on debug level in {{GridTaskWorker}}. was (Author: agura): 1. Done with {{IgniteClosure}}. {{ComputeTask}} isn't best way to do it, because we need run it only on cache data nodes. D 2. Done. But at unlucky time closure start on node where cache stopped already but node is still alive. As result we have NPE. Is it ok to catch them? 3. Now {{ClusterTopologyException}} logs only on debug level in {{GridTaskWorker}}. > 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: Andrey Gura > Priority: Blocker > Fix For: sprint-4 > > > 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)