You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2017/08/01 20:25:08 UTC

asterixdb git commit: [ASTERIXDB-2009][RT] Improve error reporting in MultiplexedConnection

Repository: asterixdb
Updated Branches:
  refs/heads/master 18b8323ee -> 543a4bb72


[ASTERIXDB-2009][RT] Improve error reporting in MultiplexedConnection

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- retain cause exception and ip address when raising error
  in MultiplexedConnection.waitUntilConnected()

Change-Id: I39c2db3b966dbde5c4c04ba061132a74195fb155
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1910
Reviewed-by: Yingyi Bu <bu...@gmail.com>
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
BAD: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/543a4bb7
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/543a4bb7
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/543a4bb7

Branch: refs/heads/master
Commit: 543a4bb729daae8748a07bc8aebabbfbc0e0f46b
Parents: 18b8323
Author: Dmitry Lychagin <dm...@couchbase.com>
Authored: Mon Jul 31 16:54:32 2017 -0700
Committer: Dmitry Lychagin <dm...@couchbase.com>
Committed: Tue Aug 1 13:24:50 2017 -0700

----------------------------------------------------------------------
 .../hyracks/net/protocols/muxdemux/MultiplexedConnection.java | 5 +++--
 .../org/apache/hyracks/net/protocols/muxdemux/MuxDemux.java   | 4 ++--
 .../hyracks/net/protocols/tcp/ITCPConnectionListener.java     | 3 ++-
 .../org/apache/hyracks/net/protocols/tcp/TCPEndpoint.java     | 7 +++----
 4 files changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/543a4bb7/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MultiplexedConnection.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MultiplexedConnection.java b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MultiplexedConnection.java
index ad8aabd..8c54c65 100644
--- a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MultiplexedConnection.java
+++ b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MultiplexedConnection.java
@@ -110,8 +110,9 @@ public class MultiplexedConnection implements ITCPConnectionEventListener {
         notifyAll();
     }
 
-    synchronized void setConnectionFailure() {
+    synchronized void setConnectionFailure(Exception e) {
         this.connectionFailure = true;
+        this.error = e;
         notifyAll();
     }
 
@@ -120,7 +121,7 @@ public class MultiplexedConnection implements ITCPConnectionEventListener {
             wait();
         }
         if (connectionFailure) {
-            throw new NetException("Connection failure");
+            throw new NetException("Connection failure", error);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/543a4bb7/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MuxDemux.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MuxDemux.java b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MuxDemux.java
index 7e6c8d7..f6261da 100644
--- a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MuxDemux.java
+++ b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/MuxDemux.java
@@ -92,7 +92,7 @@ public class MuxDemux {
             }
 
             @Override
-            public void connectionFailure(InetSocketAddress remoteAddress) {
+            public void connectionFailure(InetSocketAddress remoteAddress, IOException error) {
                 MultiplexedConnection mConn;
                 synchronized (MuxDemux.this) {
                     mConn = connectionMap.get(remoteAddress);
@@ -100,7 +100,7 @@ public class MuxDemux {
                     int nConnectionAttempts = mConn.getConnectionAttempts();
                     if (nConnectionAttempts > MuxDemux.this.maxConnectionAttempts) {
                         connectionMap.remove(remoteAddress);
-                        mConn.setConnectionFailure();
+                        mConn.setConnectionFailure(new IOException(remoteAddress.toString() + ": " + error, error));
                     } else {
                         mConn.setConnectionAttempts(nConnectionAttempts + 1);
                         tcpEndpoint.initiateConnection(remoteAddress);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/543a4bb7/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/ITCPConnectionListener.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/ITCPConnectionListener.java b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/ITCPConnectionListener.java
index 9fe0421..b801cd3 100644
--- a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/ITCPConnectionListener.java
+++ b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/ITCPConnectionListener.java
@@ -18,6 +18,7 @@
  */
 package org.apache.hyracks.net.protocols.tcp;
 
+import java.io.IOException;
 import java.net.InetSocketAddress;
 
 public interface ITCPConnectionListener {
@@ -25,5 +26,5 @@ public interface ITCPConnectionListener {
 
     public void connectionEstablished(TCPConnection connection);
 
-    public void connectionFailure(InetSocketAddress remoteAddress);
+    public void connectionFailure(InetSocketAddress remoteAddress, IOException error);
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/543a4bb7/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/TCPEndpoint.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/TCPEndpoint.java b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/TCPEndpoint.java
index 41e0dd2..52f4c30 100644
--- a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/TCPEndpoint.java
+++ b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/tcp/TCPEndpoint.java
@@ -132,7 +132,7 @@ public class TCPEndpoint {
                             } catch (IOException e) {
                                 failure = true;
                                 synchronized (connectionListener) {
-                                    connectionListener.connectionFailure(address);
+                                    connectionListener.connectionFailure(address, e);
                                 }
                             }
                             if (!failure) {
@@ -188,11 +188,10 @@ public class TCPEndpoint {
                                 boolean finishConnect = false;
                                 try {
                                     finishConnect = channel.finishConnect();
-                                } catch (Exception e) {
-                                    e.printStackTrace();
+                                } catch (IOException e) {
                                     key.cancel();
                                     synchronized (connectionListener) {
-                                        connectionListener.connectionFailure((InetSocketAddress) key.attachment());
+                                        connectionListener.connectionFailure((InetSocketAddress) key.attachment(), e);
                                     }
                                 }
                                 if (finishConnect) {