You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2015/11/20 22:01:56 UTC
[02/50] [abbrv] incubator-geode git commit: Revert "[GEODE-77] TCP
check for health monitor"
Revert "[GEODE-77] TCP check for health monitor"
This reverts commit e267c88b134155eea6dab935a7a549c041e3e77e.
The revert is due to some test failures.
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/5db80554
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/5db80554
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/5db80554
Branch: refs/heads/develop
Commit: 5db80554379f7d68292941de75473516069c812a
Parents: e267c88
Author: Jianxia Chen <jc...@pivotal.io>
Authored: Fri Oct 16 15:39:10 2015 -0700
Committer: Jianxia Chen <jc...@pivotal.io>
Committed: Fri Oct 16 15:39:10 2015 -0700
----------------------------------------------------------------------
.../membership/gms/fd/GMSHealthMonitor.java | 215 +------------------
.../gms/interfaces/HealthMonitor.java | 17 --
.../membership/gms/membership/GMSJoinLeave.java | 103 ++-------
.../gms/messages/InstallViewMessage.java | 31 +--
.../gms/messages/JoinRequestMessage.java | 14 +-
.../gms/messages/JoinResponseMessage.java | 31 +--
.../membership/GMSHealthMonitorJUnitTest.java | 14 +-
.../sanctionedDataSerializables.txt | 38 ++--
.../codeAnalysis/sanctionedSerializables.txt | 5 +-
9 files changed, 50 insertions(+), 418 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
index 8eb4dbb..ae79fc5 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java
@@ -4,13 +4,6 @@ import static com.gemstone.gemfire.internal.DataSerializableFixedID.CHECK_REQUES
import static com.gemstone.gemfire.internal.DataSerializableFixedID.CHECK_RESPONSE;
import static com.gemstone.gemfire.internal.DataSerializableFixedID.SUSPECT_MEMBERS_MESSAGE;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -31,7 +24,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.logging.log4j.Logger;
-import com.gemstone.gemfire.SystemConnectException;
import com.gemstone.gemfire.distributed.DistributedMember;
import com.gemstone.gemfire.distributed.DistributedSystemDisconnectedException;
import com.gemstone.gemfire.distributed.internal.DistributionMessage;
@@ -44,7 +36,6 @@ import com.gemstone.gemfire.distributed.internal.membership.gms.messages.CheckRe
import com.gemstone.gemfire.distributed.internal.membership.gms.messages.CheckResponseMessage;
import com.gemstone.gemfire.distributed.internal.membership.gms.messages.SuspectMembersMessage;
import com.gemstone.gemfire.distributed.internal.membership.gms.messages.SuspectRequest;
-import com.gemstone.gemfire.internal.AvailablePort;
import com.gemstone.gemfire.internal.concurrent.ConcurrentHashSet;
/**
@@ -127,15 +118,6 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
/** test hook */
boolean beingSick = false;
-
- // For TCP check
- private ExecutorService serverSocketExecutor;
- private static final int PING = 0x01;
- private static final int PONG = 0x02;
- private InetAddress ip;
- private int socketPort;
- private ServerSocket serverSocket;
- private Map<InternalDistributedMember, InetSocketAddress> socketInfo = new ConcurrentHashMap<InternalDistributedMember, InetSocketAddress>();
public GMSHealthMonitor() {
@@ -345,61 +327,6 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
return false;
}
- /**
- * During final check, establish TCP connection between current member and suspect member.
- * And exchange PING/PONG message to see if the suspect member is still alive.
- *
- * @param suspectMember member that does not respond to CheckRequestMessage
- * @return true if successfully exchanged PING/PONG with TCP connection, otherwise false.
- */
- private boolean doTCPCheckMember(InternalDistributedMember suspectMember) {
- logger.trace("Checking member {} with TCP socket connection.", suspectMember);
- Socket clientSocket = new Socket();
- try {
- // establish TCP connection
- InetSocketAddress addr = socketInfo.get(suspectMember);
- if (addr != null) {
- logger.trace("Checking member {} with TCP socket connection {}:{}.", suspectMember, addr.getAddress(), addr.getPort());
- clientSocket.connect(addr, (int) services.getConfig().getMemberTimeout());
- }
- if (clientSocket.isConnected()) {
- clientSocket.setSoTimeout((int) services.getConfig().getMemberTimeout());
- InputStream in = clientSocket.getInputStream();
- OutputStream out = clientSocket.getOutputStream();
- out.write(PING);
- out.flush();
- clientSocket.shutdownOutput();
- logger.trace("Send {} to member {} with TCP socket connection.", PING, suspectMember);
- int b = in.read();
- logger.trace("Received {} from member {} with TCP socket connection.", b, suspectMember);
- if (b == PONG) {
- CustomTimeStamp ts = memberVsLastMsgTS.get(suspectMember);
- if (ts != null) {
- ts.setTimeStamp(System.currentTimeMillis());
- }
- return true;
- } else {
- // TODO: Received something other than PONG. Is it possible?
- return false;
- }
- } else {// cannot establish TCP connection with suspect member
- return false;
- }
- } catch (IOException e) {
- logger.trace("Unexpected exception", e);
- } finally {
- try {
- if (clientSocket != null) {
- clientSocket.close();
- }
- } catch (IOException e) {
- logger.trace("Unexpected exception", e);
- }
- }
-
- return false;
- }
-
/*
* (non-Javadoc)
*
@@ -428,7 +355,7 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
}
public void start() {
- {
+ {
scheduler = Executors.newScheduledThreadPool(1, new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
@@ -469,108 +396,6 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
suspectRequestCollectorThread.setDaemon(true);
suspectRequestCollectorThread.start();
}
-
- {
- serverSocketExecutor = Executors.newCachedThreadPool(new ThreadFactory() {
- AtomicInteger threadIdx = new AtomicInteger();
-
- @Override
- public Thread newThread(Runnable r) {
- int id = threadIdx.getAndIncrement();
- Thread th = new Thread(Services.getThreadGroup(), r, "TCP Check ServerSocket Thread " + id);
- th.setDaemon(true);
- return th;
- }
- });
-
- serverSocketExecutor.execute(new Runnable() {
- @Override
- public void run() {
- Socket socket = null;
- try {
- // start server socket for TCP check
- localAddress = services.getMessenger().getMemberID();
- ip = localAddress.getInetAddress();
- int[] portRange = services.getConfig().getMembershipPortRange();
- socketPort = AvailablePort.getAvailablePortInRange(portRange[0], portRange[1], AvailablePort.SOCKET);
- if (socketPort == -1) {
- throw new SystemConnectException("Unable to find a free port in the membership port range");
- }
- serverSocket = new ServerSocket(socketPort);
- logger.debug("GMSHealthMonitor started server socket on {}:{}.", ip, socketPort);
- socketInfo.put(localAddress, new InetSocketAddress(ip, socketPort));
- while (!services.getCancelCriterion().isCancelInProgress()
- && !GMSHealthMonitor.this.isStopping && !GMSHealthMonitor.this.playingDead) {
- try {
- socket = serverSocket.accept();
- if (GMSHealthMonitor.this.playingDead) {
- continue;
- }
- socket.setSoTimeout((int) services.getConfig().getMemberTimeout());
- new ClientSocketHandler(socket).start();
- } catch (IOException e) {
- logger.trace("Unexpected exception", e);
- try {
- if (socket != null) {
- socket.close();
- }
- } catch (IOException ioe) {
- logger.trace("Unexpected exception", ioe);
- }
- }
- }
- } catch (IOException e) {
- logger.trace("Unexpected exception", e);
- } finally {
- // close the server socket
- if (serverSocket != null) {
- try {
- serverSocket.close();
- logger.debug("GMSHealthMonitor server socket closed.");
- } catch (IOException e) {
- logger.debug("Unexpected exception", e);
- }
- }
- }
- }
- });
- }
- }
-
- class ClientSocketHandler extends Thread {
-
- private Socket socket;
-
- public ClientSocketHandler(Socket socket) {
- super(services.getThreadGroup(), "ClientSocketHandler");
- this.socket = socket;
- setDaemon(true);
- }
-
- public void run() {
- try {
- InputStream in = socket.getInputStream();
- OutputStream out = socket.getOutputStream();
- int b = in.read();
- logger.debug("GMSHealthMonitor server socket received {}.", b);
- if (b == PING) {
- out.write(PONG);
- out.flush();
- socket.shutdownOutput();
- logger.debug("GMSHealthMonitor server socket replied {}.", PONG);
- }
- } catch (IOException e) {
- logger.trace("Unexpected exception", e);
- } finally {
- if (socket != null) {
- try {
- socket.close();
- } catch (IOException e) {
- logger.info("Unexpected exception", e);
- }
- }
- }
- }
}
public synchronized void installView(NetView newView) {
@@ -694,18 +519,6 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
checkExecutor.shutdown();
}
- if (serverSocketExecutor != null) {
- if (serverSocket != null) {
- try {
- serverSocket.close();
- }
- catch (IOException e) {
- logger.trace("Unexpected exception", e);
- }
- }
- serverSocketExecutor.shutdownNow();
- }
-
if (suspectRequestCollectorThread != null) {
suspectRequestCollectorThread.shutdown();
}
@@ -715,7 +528,7 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
* test method
*/
public boolean isShutdown() {
- return scheduler.isShutdown() && checkExecutor.isShutdown() && serverSocketExecutor.isShutdown() && !suspectRequestCollectorThread.isAlive();
+ return scheduler.isShutdown() && checkExecutor.isShutdown() && !suspectRequestCollectorThread.isAlive();
}
@Override
@@ -935,12 +748,7 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
memberVsLastMsgTS.put(mbr, ts);
logger.info("Performing final check for suspect member {} reason={}", mbr, reason);
- boolean pinged;
- if (socketInfo.get(mbr) == null || socketInfo.get(mbr).getPort() < 0) {
- pinged = GMSHealthMonitor.this.doCheckMember(mbr);
- } else {
- pinged = GMSHealthMonitor.this.doTCPCheckMember(mbr);
- }
+ boolean pinged = GMSHealthMonitor.this.doCheckMember(mbr);
if (!pinged && !isStopping) {
ts = memberVsLastMsgTS.get(mbr);
if (ts == null || ts.getTimeStamp() <= startTime) {
@@ -1105,21 +913,4 @@ public class GMSHealthMonitor implements HealthMonitor, MessageHandler {
// TODO Auto-generated method stub
}
-
- public Map<InternalDistributedMember, InetSocketAddress> getSocketInfo() {
- return this.socketInfo;
- }
-
- public void installSocketInfo(List<InternalDistributedMember> members, List<Integer> portsForMembers) {
- logger.info("members=" + members + " portsForMembers=" + portsForMembers);
- logger.info("members.size()=" + members.size() + " portsForMembers.size()=" + portsForMembers.size());
- for (int i = 0; i < members.size(); i++) {
- if (portsForMembers.get(i) == -1) {
- continue;
- }
- InetSocketAddress addr = new InetSocketAddress(members.get(i).getInetAddress(), portsForMembers.get(i));
- socketInfo.put(members.get(i), addr);
- }
- }
-
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/interfaces/HealthMonitor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/interfaces/HealthMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/interfaces/HealthMonitor.java
index 05e2d91..9ace2be 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/interfaces/HealthMonitor.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/interfaces/HealthMonitor.java
@@ -1,9 +1,5 @@
package com.gemstone.gemfire.distributed.internal.membership.gms.interfaces;
-import java.net.InetSocketAddress;
-import java.util.List;
-import java.util.Map;
-
import com.gemstone.gemfire.distributed.DistributedMember;
import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
@@ -38,17 +34,4 @@ public interface HealthMonitor extends Service {
* ShutdownMessage has been received from the given member
*/
public void memberShutdown(DistributedMember mbr, String reason);
-
- /**
- * Returns a map that describes the members and their server sockets
- */
- public Map<InternalDistributedMember, InetSocketAddress> getSocketInfo();
-
- /**
- * Update the information of the members and their server sockets
- *
- * @param members
- * @param portsForMembers List of socket ports for each member
- */
- public void installSocketInfo(List<InternalDistributedMember> members, List<Integer> portsForMembers);
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
index abe6b03..4ebc20c 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java
@@ -19,7 +19,6 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
@@ -281,10 +280,7 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
logger.info("Attempting to join the distributed system through coordinator " + coord + " using address " + this.localAddress);
JoinRequestMessage req = new JoinRequestMessage(coord, this.localAddress,
services.getAuthenticator().getCredentials(coord));
- //add server socket port in the join request
- if (services.getHealthMonitor().getSocketInfo().get(localAddress) != null) {
- req.setSocketPort(services.getHealthMonitor().getSocketInfo().get(localAddress).getPort());
- }
+
services.getMessenger().send(req);
JoinResponseMessage response = null;
@@ -326,7 +322,6 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
this.localAddress.setVmViewId(this.birthViewId);
GMSMember me = (GMSMember)this.localAddress.getNetMember();
me.setBirthViewId(birthViewId);
- services.getHealthMonitor().installSocketInfo(response.getCurrentView().getMembers(), response.getPortsForMembers());
installView(response.getCurrentView());
}
@@ -379,23 +374,6 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
if (!this.localAddress.getNetMember().preferredForCoordinator() &&
incomingRequest.getMemberID().getNetMember().preferredForCoordinator()) {
JoinResponseMessage m = new JoinResponseMessage(incomingRequest.getMemberID(), currentView, true);
- // add socket ports of all members to join response
- List<Integer> portsForMembers = new ArrayList<Integer>(currentView.size());
- Map<InternalDistributedMember, InetSocketAddress> socketInfo = services.getHealthMonitor().getSocketInfo();
- for (InternalDistributedMember mbr : currentView.getMembers()) {
- InetSocketAddress addr = socketInfo.get(mbr);
- if (addr != null) {
- portsForMembers.add(addr.getPort());
- } else {
- if (incomingRequest.getMemberID().compareTo(mbr, true) == 0) {
- portsForMembers.add(incomingRequest.getSocketPort());
- }
- else {
- portsForMembers.add(-1);
- }
- }
- }
- m.setPortsForMembers(portsForMembers);
services.getMessenger().send(m);
return;
}
@@ -599,10 +577,9 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
}
}
- private void sendJoinResponses(List<InternalDistributedMember> newMbrs, NetView newView, List<Integer> portsForMembers) {
+ private void sendJoinResponses(List<InternalDistributedMember> newMbrs, NetView newView) {
for (InternalDistributedMember mbr: newMbrs) {
JoinResponseMessage response = new JoinResponseMessage(mbr, newView);
- response.setPortsForMembers(portsForMembers);
services.getMessenger().send(response);
}
}
@@ -617,44 +594,19 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
}
- boolean prepareView(NetView view, Collection<InternalDistributedMember> newMembers, List<DistributionMessage> requests) {
- return sendView(view, newMembers, true, this.prepareProcessor, requests);
+ boolean prepareView(NetView view, Collection<InternalDistributedMember> newMembers) {
+ return sendView(view, newMembers, true, this.prepareProcessor);
}
- void sendView(NetView view, Collection<InternalDistributedMember> newMembers, List<DistributionMessage> requests) {
- sendView(view, newMembers, false, this.viewProcessor, requests);
+ void sendView(NetView view, Collection<InternalDistributedMember> newMembers) {
+ sendView(view, newMembers, false, this.viewProcessor);
}
- boolean sendView(NetView view, Collection<InternalDistributedMember> newMembers, boolean preparing, ViewReplyProcessor rp, List<DistributionMessage> requests) {
+ boolean sendView(NetView view, Collection<InternalDistributedMember> newMembers, boolean preparing, ViewReplyProcessor rp) {
int id = view.getViewId();
InstallViewMessage msg = new InstallViewMessage(view, services.getAuthenticator().getCredentials(this.localAddress), preparing);
Set<InternalDistributedMember> recips = new HashSet<>(view.getMembers());
- // add socket ports of all members to InstallViewMessage
- List<Integer> portsForMembers = new ArrayList<Integer>(view.size());
- if (requests != null) {
- Map<InternalDistributedMember, InetSocketAddress> socketInfo = services.getHealthMonitor().getSocketInfo();
- for (InternalDistributedMember mbr : view.getMembers()) {
- InetSocketAddress addr = socketInfo.get(mbr);
- if (addr != null) {
- portsForMembers.add(addr.getPort());
- } else {
- boolean found = false;
- for (DistributionMessage req : requests) {
- if (req instanceof JoinRequestMessage) {
- if (((JoinRequestMessage) req).getMemberID().compareTo(mbr, false) == 0) {
- portsForMembers.add(((JoinRequestMessage) req).getSocketPort());
- found = true;
- }
- }
- }
- if (!found) {
- portsForMembers.add(-1);
- }
- }
- }
- msg.setPortsForMembers(portsForMembers);
- }
// a recent member was seen not to receive a new view - I think this is why
// recips.removeAll(newMembers); // new members get the view in a JoinResponseMessage
@@ -668,9 +620,6 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
if (preparing) {
this.preparedView = view;
- if (requests != null) {
- services.getHealthMonitor().installSocketInfo(view.getMembers(), portsForMembers);
- }
} else {
installView(view);
}
@@ -737,9 +686,6 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
}
else {
this.preparedView = view;
- if (!m.getPortsForMembers().isEmpty()) {
- services.getHealthMonitor().installSocketInfo(view.getMembers(), m.getPortsForMembers());
- }
ackView(m);
}
}
@@ -1609,7 +1555,7 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
if (initialView != null) {
try {
prepareAndSendView(initialView, Collections.<InternalDistributedMember>emptyList(),
- initialLeaving, initialRemovals, null);
+ initialLeaving, initialRemovals);
} finally {
this.initialView = null;
this.initialLeaving = null;
@@ -1790,32 +1736,10 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
// we want to always check for quorum loss but don't act on it
// unless network-partition-detection is enabled
if ( !(isNetworkPartition(newView) && quorumRequired) ) {
- // add socket ports of all members to join response
- List<Integer> portsForMembers = new ArrayList<Integer>(newView.size());
- Map<InternalDistributedMember, InetSocketAddress> socketInfo = services.getHealthMonitor().getSocketInfo();
- for (InternalDistributedMember mbr : newView.getMembers()) {
- InetSocketAddress addr = socketInfo.get(mbr);
- if (addr != null) {
- portsForMembers.add(addr.getPort());
- } else {
- boolean found = false;
- for (DistributionMessage req : requests) {
- if (req instanceof JoinRequestMessage) {
- if (((JoinRequestMessage) req).getMemberID().compareTo(mbr, true) == 0) {
- portsForMembers.add(((JoinRequestMessage) req).getSocketPort());
- found = true;
- }
- }
- }
- if (!found) {
- portsForMembers.add(-1);
- }
- }
- }
- sendJoinResponses(joinReqs, newView, portsForMembers);
+ sendJoinResponses(joinReqs, newView);
}
- prepareAndSendView(newView, joinReqs, leaveReqs, newView.getCrashedMembers(), requests);
+ prepareAndSendView(newView, joinReqs, leaveReqs, newView.getCrashedMembers());
return;
}
@@ -1826,8 +1750,7 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
void prepareAndSendView(NetView newView,
List<InternalDistributedMember> joinReqs,
Set<InternalDistributedMember> leaveReqs,
- Set<InternalDistributedMember> removalReqs,
- List<DistributionMessage> requests) {
+ Set<InternalDistributedMember> removalReqs) {
boolean prepared = false;
do {
if (this.shutdown || Thread.currentThread().isInterrupted()) {
@@ -1850,7 +1773,7 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
return;
}
- prepared = prepareView(newView, joinReqs, requests);
+ prepared = prepareView(newView, joinReqs);
logger.debug("view preparation phase completed. prepared={}", prepared);
if (prepared) {
@@ -1902,7 +1825,7 @@ public class GMSJoinLeave implements JoinLeave, MessageHandler {
lastConflictingView = null;
- sendView(newView, joinReqs, requests);
+ sendView(newView, joinReqs);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/InstallViewMessage.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/InstallViewMessage.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/InstallViewMessage.java
index 5534ff8..fa9989f 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/InstallViewMessage.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/InstallViewMessage.java
@@ -3,21 +3,18 @@ package com.gemstone.gemfire.distributed.internal.membership.gms.messages;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
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.NetView;
-import com.gemstone.gemfire.internal.InternalDataSerializer;
+import com.gemstone.gemfire.distributed.internal.membership.gms.mgr.GMSMembershipManager;
public class InstallViewMessage extends HighPriorityDistributionMessage {
private NetView view;
private Object credentials;
private boolean preparing;
- private List<Integer> portsForMembers = new ArrayList<Integer>();
public InstallViewMessage(NetView view, Object credentials) {
this.view = view;
@@ -57,29 +54,12 @@ public class InstallViewMessage extends HighPriorityDistributionMessage {
throw new IllegalStateException("this message is not intended to execute in a thread pool");
}
- /** this will deserialize as an ArrayList */
- private void writeAsArrayList(List list, DataOutput out) throws IOException {
- int size;
- if (list == null) {
- size = -1;
- } else {
- size = list.size();
- }
- InternalDataSerializer.writeArrayLength(size, out);
- if (size > 0) {
- for (int i = 0; i < size; i++) {
- DataSerializer.writeObject(list.get(i), out);
- }
- }
- }
-
@Override
public void toData(DataOutput out) throws IOException {
super.toData(out);
DataSerializer.writeObject(this.view, out);
DataSerializer.writeObject(this.credentials, out);
out.writeBoolean(preparing);
- writeAsArrayList(portsForMembers, out);
}
@Override
@@ -88,22 +68,13 @@ public class InstallViewMessage extends HighPriorityDistributionMessage {
this.view = DataSerializer.readObject(in);
this.credentials = DataSerializer.readObject(in);
this.preparing = in.readBoolean();
- this.portsForMembers = DataSerializer.readArrayList(in);
}
@Override
public String toString() {
return "InstallViewMessage(preparing="+this.preparing+"; "+this.view
+"; cred="+(credentials==null?"null": "not null")
- + "portsForMembers: " + portsForMembers
+")";
}
- public List<Integer> getPortsForMembers() {
- return this.portsForMembers;
- }
-
- public void setPortsForMembers(List<Integer> portsForMembers) {
- this.portsForMembers = portsForMembers;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinRequestMessage.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinRequestMessage.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinRequestMessage.java
index 952b20e..fc5faa6 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinRequestMessage.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinRequestMessage.java
@@ -13,7 +13,7 @@ import com.gemstone.gemfire.internal.Version;
public class JoinRequestMessage extends HighPriorityDistributionMessage {
private InternalDistributedMember memberID;
private Object credentials;
- private int socketPort = -1;
+
public JoinRequestMessage(InternalDistributedMember coord,
InternalDistributedMember id, Object credentials) {
@@ -47,7 +47,7 @@ public class JoinRequestMessage extends HighPriorityDistributionMessage {
@Override
public String toString() {
- return getShortClassName() + "(" + memberID + (credentials==null? ")" : "; with credentials)") + " socketPort:" + socketPort;
+ return getShortClassName() + "(" + memberID + (credentials==null? ")" : "; with credentials)");
}
@Override
@@ -59,7 +59,6 @@ public class JoinRequestMessage extends HighPriorityDistributionMessage {
public void toData(DataOutput out) throws IOException {
DataSerializer.writeObject(memberID, out);
DataSerializer.writeObject(credentials, out);
- DataSerializer.writePrimitiveInt(socketPort, out);
// preserve the multicast setting so the receiver can tell
// if this is a mcast join request
out.writeBoolean(getMulticast());
@@ -69,16 +68,7 @@ public class JoinRequestMessage extends HighPriorityDistributionMessage {
public void fromData(DataInput in) throws IOException, ClassNotFoundException {
memberID = DataSerializer.readObject(in);
credentials = DataSerializer.readObject(in);
- socketPort = DataSerializer.readPrimitiveInt(in);
setMulticast(in.readBoolean());
}
- public int getSocketPort() {
- return socketPort;
- }
-
- public void setSocketPort(int socketPort) {
- this.socketPort = socketPort;
- }
-
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinResponseMessage.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinResponseMessage.java b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinResponseMessage.java
index c405333..d85229c 100755
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinResponseMessage.java
+++ b/gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinResponseMessage.java
@@ -3,15 +3,13 @@ package com.gemstone.gemfire.distributed.internal.membership.gms.messages;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
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 com.gemstone.gemfire.internal.InternalDataSerializer;
+import com.gemstone.gemfire.internal.DataSerializableFixedID;
import com.gemstone.gemfire.internal.Version;
public class JoinResponseMessage extends HighPriorityDistributionMessage {
@@ -21,7 +19,6 @@ public class JoinResponseMessage extends HighPriorityDistributionMessage {
private InternalDistributedMember memberID;
private Object messengerData;
private boolean becomeCoordinator;
- private List<Integer> portsForMembers = new ArrayList<Integer>();
public JoinResponseMessage(InternalDistributedMember memberID, NetView view) {
this.currentView = view;
@@ -77,7 +74,6 @@ public class JoinResponseMessage extends HighPriorityDistributionMessage {
public String toString() {
return getShortClassName() + "("+memberID + "; "
+ (currentView==null? "" : currentView.toString())
- + "portsForMembers: " + portsForMembers
+ (rejectionMessage==null? "" : ("; "+rejectionMessage))
+ (becomeCoordinator? "; becomeCoordinator" : "")
+ ")";
@@ -93,27 +89,10 @@ public class JoinResponseMessage extends HighPriorityDistributionMessage {
return JOIN_RESPONSE;
}
- /** this will deserialize as an ArrayList */
- private void writeAsArrayList(List list, DataOutput out) throws IOException {
- int size;
- if (list == null) {
- size = -1;
- } else {
- size = list.size();
- }
- InternalDataSerializer.writeArrayLength(size, out);
- if (size > 0) {
- for (int i = 0; i < size; i++) {
- DataSerializer.writeObject(list.get(i), out);
- }
- }
- }
-
@Override
public void toData(DataOutput out) throws IOException {
DataSerializer.writeObject(currentView, out);
DataSerializer.writeObject(memberID, out);
- writeAsArrayList(portsForMembers, out);
out.writeBoolean(becomeCoordinator);
DataSerializer.writeString(rejectionMessage, out);
DataSerializer.writeObject(messengerData, out);
@@ -123,17 +102,9 @@ public class JoinResponseMessage extends HighPriorityDistributionMessage {
public void fromData(DataInput in) throws IOException, ClassNotFoundException {
currentView = DataSerializer.readObject(in);
memberID = DataSerializer.readObject(in);
- portsForMembers = DataSerializer.readArrayList(in);
becomeCoordinator = in.readBoolean();
rejectionMessage = DataSerializer.readString(in);
messengerData = DataSerializer.readObject(in);
}
- public void setPortsForMembers(List<Integer> portsForMembers) {
- this.portsForMembers = portsForMembers;
- }
-
- public List<Integer> getPortsForMembers() {
- return this.portsForMembers;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSHealthMonitorJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSHealthMonitorJUnitTest.java b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSHealthMonitorJUnitTest.java
index cf95817..ae77b81 100644
--- a/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSHealthMonitorJUnitTest.java
+++ b/gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSHealthMonitorJUnitTest.java
@@ -46,11 +46,9 @@ public class GMSHealthMonitorJUnitTest {
private GMSJoinLeave joinLeave;
private GMSHealthMonitor gmsHealthMonitor;
final long memberTimeout = 1000l;
- private int[] portRange= new int[]{0, 65535};
@Before
public void initMocks() throws UnknownHostException {
- System.setProperty("gemfire.bind-address", "localhost");
mockDistConfig = mock(DistributionConfig.class);
mockConfig = mock(ServiceConfig.class);
messenger = mock(Messenger.class);
@@ -60,13 +58,11 @@ public class GMSHealthMonitorJUnitTest {
when(mockConfig.getDistributionConfig()).thenReturn(mockDistConfig);
when(mockConfig.getMemberTimeout()).thenReturn(memberTimeout);
- when(mockConfig.getMembershipPortRange()).thenReturn(portRange);
when(services.getConfig()).thenReturn(mockConfig);
when(services.getMessenger()).thenReturn(messenger);
when(services.getJoinLeave()).thenReturn(joinLeave);
when(services.getCancelCriterion()).thenReturn(stopper);
when(stopper.isCancelInProgress()).thenReturn(false);
-
if (mockMembers == null) {
mockMembers = new ArrayList<InternalDistributedMember>();
@@ -80,7 +76,7 @@ public class GMSHealthMonitorJUnitTest {
mockMembers.add(mbr);
}
}
- when(joinLeave.getMemberID()).thenReturn(mockMembers.get(3));
+
gmsHealthMonitor = new GMSHealthMonitor();
gmsHealthMonitor.init(services);
gmsHealthMonitor.start();
@@ -320,7 +316,7 @@ public class GMSHealthMonitorJUnitTest {
try {
// this happens after final check, ping timeout
- Thread.sleep(memberTimeout);
+ Thread.sleep(150l);
} catch (InterruptedException e) {
}
@@ -356,7 +352,7 @@ public class GMSHealthMonitorJUnitTest {
try {
// this happens after final check, ping timeout
- Thread.sleep(memberTimeout);
+ Thread.sleep(90l);
} catch (InterruptedException e) {
}
@@ -393,8 +389,8 @@ public class GMSHealthMonitorJUnitTest {
gmsHealthMonitor.processMessage(sm);
try {
- // this happens after final check, ping timeout = 1000 ms
- Thread.sleep(memberTimeout);
+ // this happens after final check, ping timeout = 100 ms
+ Thread.sleep(110l);
} catch (InterruptedException e) {
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedDataSerializables.txt
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedDataSerializables.txt b/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedDataSerializables.txt
index 874069d..7210d9e 100644
--- a/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedDataSerializables.txt
+++ b/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedDataSerializables.txt
@@ -373,16 +373,16 @@ fromData,11,2a2bb9000e0100b50002b1
toData,11,2b2ab40002b9000d0200b1
com/gemstone/gemfire/distributed/internal/membership/gms/messages/InstallViewMessage,2
-fromData,43,2a2bb700122a2bb80013c00014b500052a2bb80013b500072a2bb900150100b500062a2bb80016b50004b1
-toData,41,2a2bb7000f2ab400052bb8000e2ab400072bb8000e2b2ab40006b9001002002a2ab400042bb70011b1
+fromData,35,2a2bb7000b2a2bb8000cc0000db500022a2bb8000cb500042a2bb9000e0100b50003b1
+toData,32,2a2bb700082ab400022bb800092ab400042bb800092b2ab40003b9000a0200b1
com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinRequestMessage,2
-fromData,38,2a2bb80018c00019b500042a2bb80018b500052a2bb8001ab500022a2bb9001b0100b6001cb1
-toData,35,2ab400042bb800142ab400052bb800142ab400022bb800152b2ab60016b900170200b1
+fromData,30,2a2bb80014c00015b500032a2bb80014b500042a2bb900160100b60017b1
+toData,27,2ab400032bb800112ab400042bb800112b2ab60012b900130200b1
com/gemstone/gemfire/distributed/internal/membership/gms/messages/JoinResponseMessage,2
-fromData,57,2a2bb80022c00023b500052a2bb80022c00024b500062a2bb80025b500042a2bb900260100b500082a2bb80027b500092a2bb80022b5000ab1
-toData,52,2ab400052bb8001e2ab400062bb8001e2a2ab400042bb7001f2b2ab40008b9002002002ab400092bb800212ab4000a2bb8001eb1
+fromData,49,2a2bb8001ac0001bb500022a2bb8001ac0001cb500032a2bb9001d0100b500052a2bb8001eb500062a2bb8001ab50007b1
+toData,43,2ab400022bb800172ab400032bb800172b2ab40005b9001802002ab400062bb800192ab400072bb80017b1
com/gemstone/gemfire/distributed/internal/membership/gms/messages/LeaveRequestMessage,2
fromData,20,2a2bb8000bc0000cb500032a2bb8000db50004b1
@@ -400,6 +400,10 @@ com/gemstone/gemfire/distributed/internal/membership/gms/messages/ViewAckMessage
fromData,37,2a2bb7000d2a2bb9000e0100b500032a2bb9000f0100b500042a2bb80010c00011b50005b1
toData,34,2a2bb700092b2ab40003b9000a02002b2ab40004b9000b02002ab400052bb8000cb1
+com/gemstone/gemfire/distributed/internal/membership/gms/mgr/FakeViewMessage,2
+fromData,8,bb000759b70008bf
+toData,8,bb000759b70008bf
+
com/gemstone/gemfire/distributed/internal/membership/gms/mgr/LocalViewMessage,2
fromData,8,bb000759b70008bf
toData,8,bb000759b70008bf
@@ -895,8 +899,8 @@ fromData,1,b1
toData,1,b1
com/gemstone/gemfire/internal/cache/AbstractRegion,2
-toData,6,2a2bb8017cb1
-fromData,8,bb017d59b7017ebf
+toData,6,2a2bb80188b1
+fromData,8,bb018959b7018abf
com/gemstone/gemfire/internal/cache/AbstractUpdateOperation$AbstractUpdateMessage,2
fromData,16,2a2bb700192a2bb9001a0100b5000db1
@@ -906,6 +910,14 @@ com/gemstone/gemfire/internal/cache/AddCacheServerProfileMessage,2
fromData,16,2a2bb7002f2a2bb900300100b50007b1
toData,16,2a2bb7002d2b2ab40007b9002e0200b1
+com/gemstone/gemfire/internal/cache/ClientRegionEventImpl,2
+fromData,14,2a2bb700132a2bb80014b60003b1
+toData,14,2a2bb700112ab6000d2bb80012b1
+
+com/gemstone/gemfire/internal/cache/CacheServerAdvisor$CacheServerProfile,2
+fromData,53,2a2bb700102a2bb80011b500042a2bb900120100b500062abb001359b70014b500052ab400052bb800152a2bb900160100b60017b1
+toData,42,2a2bb7000a2ab400042bb8000b2b2ab40006b9000c02002ab400052bb8000d2b2ab6000eb9000f0300b1
+
com/gemstone/gemfire/internal/cache/BucketAdvisor$BucketProfile,2
fromData,36,2a2bb700132a2bb900140100b500042a2bb900140100b500062a2bb900140100b50012b1
toData,36,2a2bb700152b2ab40004b9001602002b2ab40006b9001602002b2ab40012b900160200b1
@@ -926,14 +938,6 @@ com/gemstone/gemfire/internal/cache/CacheDistributionAdvisor$CacheProfile,2
fromData,94,2a2bb700622bb9006301003d2a1cb6001b2a1cb700649900162abb006559b70066b500262ab400262bb800672a1cb7006899000e2a2bb80069c0006ab5000d2a1cb7006b99000e2a2bb80069c0006ab5000e2a2bb80069c0006cb50016b1
toData,81,2a2bb7005b2b2ab6001ab9005c02002ab40026c6000b2ab400262bb8005d2ab4000db9002c01009a000c2a2ab4000d2bb7005e2ab4000eb9002c01009a000c2a2ab4000e2bb7005e2ab400162bb8005fb1
-com/gemstone/gemfire/internal/cache/CacheServerAdvisor$CacheServerProfile,2
-fromData,53,2a2bb700102a2bb80011b500042a2bb900120100b500062abb001359b70014b500052ab400052bb800152a2bb900160100b60017b1
-toData,42,2a2bb7000a2ab400042bb8000b2b2ab40006b9000c02002ab400052bb8000d2b2ab6000eb9000f0300b1
-
-com/gemstone/gemfire/internal/cache/ClientRegionEventImpl,2
-fromData,14,2a2bb700132a2bb80014b60003b1
-toData,14,2a2bb700112ab6000d2bb80012b1
-
com/gemstone/gemfire/internal/cache/CloseCacheMessage,2
fromData,16,2a2bb700172a2bb900180100b50002b1
toData,16,2a2bb700192b2ab40002b9001a0200b1
@@ -1304,7 +1308,7 @@ fromData,242,2a2bb700712a2bb80072b600732bb9007401003d2a1cb200757e91b500042a2bb80
toData,252,2a03b500082a2bb700892ab6008a2bb8008b2ab400043d2ab40024c600091cb20079803d2ab4007cc600091cb2007b803d2ab4002bc600091cb20086803d2b1cb9008c02002ab6008d2bb8008b2b2ab40020b9008e03002b2ab40022b4008fb9008c02002ab40024c6000b2ab400242bb8008b2ab4007cc6000b2ab4007c2bb8008b2ab400262bb800902ab4000ec6000b2ab4000e2bb8008b2ab4000799002a2b2ab4000599000704a7000403b9008c02002ab40005b800913e1d2ab700922ab600932bb800942ab400042ab4006f2ab600952bb800942ab4000bb60096c6000e2ab4000bb600962bb800972ab4002bc6000b2ab4002b2bb8008bb1
com/gemstone/gemfire/internal/cache/RemotePutMessage$PutReplyMessage,2
-fromData,81,2a2bb700252bb9002601001100ff7e913d2a1c047e99000704a7000403b500032a2bb900260100b80027b500022a2bb80028b500061c057e9900181c077e99000704a70004033e2a1d2bb80029b50007b1
+fromData,81,2a2bb700272bb9002801001100ff7e913d2a1c047e99000704a7000403b500032a2bb900280100b80029b500022a2bb8002ab500061c057e9900181c077e99000704a70004033e2a1d2bb8002bb50007b1
toData,94,2a2bb70032033d2ab400039900081c0480913d2ab40007c600081c0580913d2ab40007c100339900081c0780913d2b1cb9003402002b2ab40002b40035b9003402002b2ab600362ab40037b800382ab40007c6000b2ab400072bb80039b1
com/gemstone/gemfire/internal/cache/RemoteRegionOperation,2
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/5db80554/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedSerializables.txt
----------------------------------------------------------------------
diff --git a/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedSerializables.txt b/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedSerializables.txt
index 3e30605..6b10ea1 100644
--- a/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedSerializables.txt
+++ b/gemfire-core/src/test/resources/com/gemstone/gemfire/codeAnalysis/sanctionedSerializables.txt
@@ -218,7 +218,6 @@ com/gemstone/gemfire/cache/query/internal/utils/PDXUtils$1,false
com/gemstone/gemfire/cache/query/internal/utils/PDXUtils$2,false
com/gemstone/gemfire/cache/snapshot/SnapshotOptions$SnapshotFormat,false
com/gemstone/gemfire/cache/util/BoundedLinkedHashMap,true,-3419897166186852692,_maximumNumberOfEntries:int
-com/gemstone/gemfire/cache/util/Gateway$OrderPolicy,false
com/gemstone/gemfire/cache/wan/GatewaySender$OrderPolicy,false
com/gemstone/gemfire/compression/CompressionException,true,4118639654597191235
com/gemstone/gemfire/compression/SnappyCompressor,true,496609875302446099
@@ -831,5 +830,9 @@ com/gemstone/gemfire/security/AuthenticationFailedException,true,-82028664722790
com/gemstone/gemfire/security/AuthenticationRequiredException,true,4675976651103154919
com/gemstone/gemfire/security/GemFireSecurityException,true,3814254578203076926
com/gemstone/gemfire/security/NotAuthorizedException,true,419215768216387745,principal:java/security/Principal
+com/gemstone/java/util/concurrent/SynchronousQueueNoSpin,true,-3223113410248163686,qlock:java/util/concurrent/locks/ReentrantLock,waitingConsumers:com/gemstone/java/util/concurrent/SynchronousQueueNoSpin$WaitQueue,waitingProducers:com/gemstone/java/util/concurrent/SynchronousQueueNoSpin$WaitQueue
+com/gemstone/java/util/concurrent/SynchronousQueueNoSpin$FifoWaitQueue,true,-3623113410248163686
+com/gemstone/java/util/concurrent/SynchronousQueueNoSpin$LifoWaitQueue,true,-3633113410248163686
+com/gemstone/java/util/concurrent/SynchronousQueueNoSpin$WaitQueue,true,423369940180943459
com/gemstone/org/apache/logging/log4j/message/GemFireParameterizedMessage,true,-665975803997290697,messagePattern:java/lang/String,stringArgs:java/lang/String[]
com/gemstone/org/apache/logging/log4j/message/GemFireParameterizedMessageFactory,true,1