Return-Path: Delivered-To: apmail-incubator-cassandra-commits-archive@minotaur.apache.org Received: (qmail 38164 invoked from network); 26 Mar 2009 05:48:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 26 Mar 2009 05:48:15 -0000 Received: (qmail 25605 invoked by uid 500); 26 Mar 2009 05:48:15 -0000 Delivered-To: apmail-incubator-cassandra-commits-archive@incubator.apache.org Received: (qmail 25580 invoked by uid 500); 26 Mar 2009 05:48:15 -0000 Mailing-List: contact cassandra-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-dev@incubator.apache.org Delivered-To: mailing list cassandra-commits@incubator.apache.org Received: (qmail 25570 invoked by uid 99); 26 Mar 2009 05:48:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Mar 2009 05:48:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Mar 2009 05:48:13 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id B527C234C003 for ; Wed, 25 Mar 2009 22:47:51 -0700 (PDT) Message-ID: <607610419.1238046471727.JavaMail.jira@brutus> Date: Wed, 25 Mar 2009 22:47:51 -0700 (PDT) From: "zhu han (JIRA)" To: cassandra-commits@incubator.apache.org Subject: [jira] Created: (CASSANDRA-12) Gossiper should set the Node is dead when notifies the subscriber 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 Gossiper should set the Node is dead when notifies the subscriber ----------------------------------------------------------------- Key: CASSANDRA-12 URL: https://issues.apache.org/jira/browse/CASSANDRA-12 Project: Cassandra Issue Type: Bug Reporter: zhu han When the gossiper is notified by Failure Detector that one node is dead, it would tell the storage service by the onChange() cacallback. However, the gossiper doesn't set the EndPointState to be dead. Please check following code snippet from Gossiper.java public void suspect(EndPoint endpoint) { EndPointState epState = endPointStateMap_.get(endpoint); if ( epState.isAlive() ) { logger_.info("EndPoint " + endpoint + " is now dead."); isAlive(endpoint, epState, false); /* Notify an endpoint is dead to interested parties. */ EndPointState deltaState = new EndPointState(epState.getHeartBeatState()); /* add deltaState.isAlive(false); here */ doNotifications(endpoint, deltaState); } And the storage service would detect it as the node comes back after network partition and start a hinted transmit. Please see the code snippet in StorageService.java else --> if( nodeIdState == null) { /* * If we are here and if this node is UP and already has an entry * in the token map. It means that the node was behind a network partition. */ if ( epState.isAlive() && tokenMetadata_.isKnownEndPoint(endpoint) ) { logger_.debug("EndPoint " + ep + " just recovered from a partition. Sending hinted data."); doBootstrap(ep, BootstrapMode.HINT); } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.