Return-Path: X-Original-To: apmail-geode-commits-archive@minotaur.apache.org Delivered-To: apmail-geode-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0D33818933 for ; Mon, 29 Feb 2016 05:57:04 +0000 (UTC) Received: (qmail 15357 invoked by uid 500); 29 Feb 2016 05:56:58 -0000 Delivered-To: apmail-geode-commits-archive@geode.apache.org Received: (qmail 15269 invoked by uid 500); 29 Feb 2016 05:56:58 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 15227 invoked by uid 99); 29 Feb 2016 05:56:58 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Feb 2016 05:56:58 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 42FCEC2BF8 for ; Mon, 29 Feb 2016 05:56:58 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.221 X-Spam-Level: X-Spam-Status: No, score=-3.221 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id vEjdybZn_FGQ for ; Mon, 29 Feb 2016 05:56:57 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id B21195FBAC for ; Mon, 29 Feb 2016 05:56:54 +0000 (UTC) Received: (qmail 14684 invoked by uid 99); 29 Feb 2016 05:56:53 -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, 29 Feb 2016 05:56:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 9A7C1E69F9; Mon, 29 Feb 2016 05:56:53 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: udo@apache.org To: commits@geode.incubator.apache.org Date: Mon, 29 Feb 2016 05:57:01 -0000 Message-Id: In-Reply-To: <092a350965464e1c98bf513c38858d4f@git.apache.org> References: <092a350965464e1c98bf513c38858d4f@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [09/13] incubator-geode git commit: GEODE-870: Handling multiple concurrent locator restarts. Elder locator nomination GEODE-870: Handling multiple concurrent locator restarts. Elder locator nomination Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/94035ed3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/94035ed3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/94035ed3 Branch: refs/heads/develop Commit: 94035ed311f5f1611b7822ca5a2be192955f45af Parents: 36eb11b Author: Udo Kohlmeyer Authored: Wed Feb 10 09:20:09 2016 +1100 Committer: Udo Kohlmeyer Committed: Mon Feb 29 16:46:39 2016 +1100 ---------------------------------------------------------------------- .../gms/messages/ViewRejectMessage.java | 96 -------------------- .../gms/membership/GMSJoinLeaveHelper.java | 60 ++++++++++++ .../internal/membership/NetView.java | 3 + 3 files changed, 63 insertions(+), 96 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/94035ed3/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/ViewRejectMessage.java ---------------------------------------------------------------------- diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/ViewRejectMessage.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/ViewRejectMessage.java deleted file mode 100755 index e5bf9e2..0000000 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/ViewRejectMessage.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.gemstone.gemfire.distributed.internal.membership.gms.messages; - -import com.gemstone.gemfire.DataSerializer; -import com.gemstone.gemfire.distributed.internal.DistributionManager; -import com.gemstone.gemfire.distributed.internal.HighPriorityDistributionMessage; -import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember; -import com.gemstone.gemfire.distributed.internal.membership.NetView; - -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; - -public class ViewRejectMessage extends HighPriorityDistributionMessage { - - private int viewId; - private NetView rejectedView; - private String reason; - - public ViewRejectMessage(InternalDistributedMember recipient, int viewId, NetView rejectedView, String reason) { - super(); - setRecipient(recipient); - this.viewId = viewId; - this.rejectedView = rejectedView; - this.reason = reason; - } - - public ViewRejectMessage() { - // no-arg constructor for serialization - } - - public int getViewId() { - return viewId; - } - - public NetView getRejectedView() { - return this.rejectedView; - } - - - @Override - public int getDSFID() { - // TODO Auto-generated method stub - return VIEW_REJECT_MESSAGE; - } - - public String getReason() { - return reason; - } - - @Override - public int getProcessorType() { - return 0; - } - - @Override - public void process(DistributionManager dm) { - throw new IllegalStateException("this message is not intended to execute in a thread pool"); - } - - @Override - public void toData(DataOutput out) throws IOException { - super.toData(out); - out.writeInt(this.viewId); - DataSerializer.writeObject(this.rejectedView, out); - } - - @Override - public void fromData(DataInput in) throws IOException, ClassNotFoundException { - super.fromData(in); - this.viewId = in.readInt(); - this.rejectedView = DataSerializer.readObject(in); - } - - @Override - public String toString() { - String s = getSender() == null? getRecipientsDescription() : ""+getSender(); - return "ViewRejectMessage("+s+"; "+this.viewId+"; rejectedView="+this.rejectedView +")"; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/94035ed3/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveHelper.java ---------------------------------------------------------------------- diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveHelper.java b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveHelper.java new file mode 100644 index 0000000..b8311bc --- /dev/null +++ b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeaveHelper.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.gemstone.gemfire.distributed.internal.membership.gms.membership; + +import com.gemstone.gemfire.distributed.Locator; +import com.gemstone.gemfire.distributed.internal.DM; +import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem; +import com.gemstone.gemfire.distributed.internal.membership.gms.Services; +import com.gemstone.gemfire.distributed.internal.membership.gms.mgr.GMSMembershipManager; + +public class GMSJoinLeaveHelper { + public static boolean isViewCreator() { + GMSJoinLeave gmsJoinLeave = getGmsJoinLeave(); + if (gmsJoinLeave != null) { + GMSJoinLeave.ViewCreator viewCreator = gmsJoinLeave.getViewCreator(); + if (viewCreator != null && !viewCreator.isShutdown()) { + return true; + } else { + return false; + } + } + throw new RuntimeException("This should not have happened. There should be a JoinLeave for every DS"); + } + + private static GMSJoinLeave getGmsJoinLeave() { + InternalDistributedSystem distributedSystem = getInternalDistributedSystem(); + DM dm = distributedSystem.getDM(); + GMSMembershipManager membershipManager = (GMSMembershipManager) dm.getMembershipManager(); + Services services = membershipManager.getServices(); + return (GMSJoinLeave) services.getJoinLeave(); + } + + public static Integer getViewId() { + return getGmsJoinLeave().getView().getViewId(); + } + + private static InternalDistributedSystem getInternalDistributedSystem() { + InternalDistributedSystem distributedSystem = InternalDistributedSystem.getAnyInstance(); + if (distributedSystem == null) { + Locator locator = Locator.getLocator(); + return (InternalDistributedSystem) locator.getDistributedSystem(); + } else { + return distributedSystem; + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/94035ed3/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/NetView.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/NetView.java b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/NetView.java index af4aec3..af05f82 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/NetView.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/NetView.java @@ -48,6 +48,9 @@ import com.gemstone.gemfire.internal.Version; */ public class NetView implements DataSerializableFixedID { + private static final Logger logger = LogService.getLogger(); + + private int viewId; private List members; private int[] failureDetectionPorts = new int[10];