Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E84FD200CCF for ; Mon, 24 Jul 2017 22:26:48 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E7060165984; Mon, 24 Jul 2017 20:26:48 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 398AF16597F for ; Mon, 24 Jul 2017 22:26:48 +0200 (CEST) Received: (qmail 14368 invoked by uid 500); 24 Jul 2017 20:26:46 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 14109 invoked by uid 99); 24 Jul 2017 20:26:46 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Jul 2017 20:26:46 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 8058EE96BB; Mon, 24 Jul 2017 20:26:45 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jkni@apache.org To: commits@cassandra.apache.org Date: Mon, 24 Jul 2017 20:26:48 -0000 Message-Id: In-Reply-To: <5f5389c1644948a8baaae25ec286d0ed@git.apache.org> References: <5f5389c1644948a8baaae25ec286d0ed@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [04/15] cassandra git commit: Clone HeartBeatState when building gossip messages. Make its generation/version volatile. archived-at: Mon, 24 Jul 2017 20:26:49 -0000 Clone HeartBeatState when building gossip messages. Make its generation/version volatile. Patch by Joel Knighton; reviewed by Jason Brown for CASSANDRA-13700 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2290c0d4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2290c0d4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2290c0d4 Branch: refs/heads/cassandra-3.0 Commit: 2290c0d4b0c20ce3407ae2c542e580c75a5ab337 Parents: 77aba07 Author: Joel Knighton Authored: Thu Jul 20 11:08:08 2017 -0500 Committer: Joel Knighton Committed: Mon Jul 24 14:45:09 2017 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 5 +++-- src/java/org/apache/cassandra/gms/HeartBeatState.java | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2290c0d4/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 5173b10..4dbd984 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.19 + * Clone HeartBeatState when building gossip messages. Make its generation/version volatile (CASSANDRA-13700) 2.1.18 http://git-wip-us.apache.org/repos/asf/cassandra/blob/2290c0d4/src/java/org/apache/cassandra/gms/Gossiper.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 889806c..7c37917 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -860,10 +860,11 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean * than the version passed in. In this case we also send the old * heart beat and throw it away on the receiver if it is redundant. */ + int localHbGeneration = epState.getHeartBeatState().getGeneration(); int localHbVersion = epState.getHeartBeatState().getHeartBeatVersion(); if (localHbVersion > version) { - reqdEndpointState = new EndpointState(epState.getHeartBeatState()); + reqdEndpointState = new EndpointState(new HeartBeatState(localHbGeneration, localHbVersion)); if (logger.isTraceEnabled()) logger.trace("local heartbeat version " + localHbVersion + " greater than " + version + " for " + forEndpoint); } @@ -876,7 +877,7 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { if (reqdEndpointState == null) { - reqdEndpointState = new EndpointState(epState.getHeartBeatState()); + reqdEndpointState = new EndpointState(new HeartBeatState(localHbGeneration, localHbVersion)); } final ApplicationState key = entry.getKey(); if (logger.isTraceEnabled()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2290c0d4/src/java/org/apache/cassandra/gms/HeartBeatState.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/gms/HeartBeatState.java b/src/java/org/apache/cassandra/gms/HeartBeatState.java index 0ae48bf..901f1c7 100644 --- a/src/java/org/apache/cassandra/gms/HeartBeatState.java +++ b/src/java/org/apache/cassandra/gms/HeartBeatState.java @@ -30,8 +30,8 @@ class HeartBeatState { public static final IVersionedSerializer serializer = new HeartBeatStateSerializer(); - private int generation; - private int version; + private volatile int generation; + private volatile int version; HeartBeatState(int gen) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org For additional commands, e-mail: commits-help@cassandra.apache.org