You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/09/13 23:38:33 UTC
svn commit: r1170360 - in
/cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra:
concurrent/DebuggableThreadPoolExecutor.java net/IncomingTcpConnection.java
Author: jbellis
Date: Tue Sep 13 21:38:33 2011
New Revision: 1170360
URL: http://svn.apache.org/viewvc?rev=1170360&view=rev
Log:
avoid logging spurious errors in tests due to gossip task shutdown race
patch by jbellis for CASSANDRA-3193
Modified:
cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java?rev=1170360&r1=1170359&r2=1170360&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java (original)
+++ cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java Tue Sep 13 21:38:33 2011
@@ -126,6 +126,10 @@ public class DebuggableThreadPoolExecuto
{
throw new AssertionError(e);
}
+ catch (CancellationException e)
+ {
+ logger.debug("Task cancelled", e);
+ }
catch (ExecutionException e)
{
if (Thread.getDefaultUncaughtExceptionHandler() == null)
Modified: cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/IncomingTcpConnection.java?rev=1170360&r1=1170359&r2=1170360&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/IncomingTcpConnection.java (original)
+++ cassandra/branches/cassandra-1.0.0/src/java/org/apache/cassandra/net/IncomingTcpConnection.java Tue Sep 13 21:38:33 2011
@@ -22,6 +22,7 @@ package org.apache.cassandra.net;
import java.io.*;
+import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
@@ -41,11 +42,13 @@ public class IncomingTcpConnection exten
private static final int CHUNK_SIZE = 1024 * 1024;
private Socket socket;
+ public InetAddress from;
public IncomingTcpConnection(Socket socket)
{
assert socket != null;
this.socket = socket;
+ from = socket.getInetAddress(); // maximize chance of this not being nulled by disconnect
}
/**
@@ -67,8 +70,7 @@ public class IncomingTcpConnection exten
int header = input.readInt();
isStream = MessagingService.getBits(header, 3, 1) == 1;
version = MessagingService.getBits(header, 15, 8);
- if (logger.isDebugEnabled())
- logger.debug("Version for " + socket.getInetAddress() + " is " + version);
+ logger.debug("Version for {} is {}", from, version);
if (isStream)
{
if (version == MessagingService.version_)
@@ -94,13 +96,13 @@ public class IncomingTcpConnection exten
if (version > MessagingService.version_)
{
// save the endpoint so gossip will reconnect to it
- Gossiper.instance.addSavedEndpoint(socket.getInetAddress());
+ Gossiper.instance.addSavedEndpoint(from);
logger.info("Received " + (isStream ? "streaming " : "") + "connection from newer protocol version. Ignorning");
}
else if (msg != null)
{
Gossiper.instance.setVersion(msg.getFrom(), version);
- logger.debug("set version for {} to {}", socket.getInetAddress(), version);
+ logger.debug("set version for {} to {}", from, version);
}
// loop to get the next message.
@@ -164,7 +166,8 @@ public class IncomingTcpConnection exten
private void close()
{
// reset version here, since we set when starting an incoming socket
- Gossiper.instance.resetVersion(socket.getInetAddress());
+ if (from != null)
+ Gossiper.instance.resetVersion(from);
try
{
socket.close();