You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2020/02/19 23:10:10 UTC

[asterixdb] 04/07: [NO ISSUE][NET] Preemptively re-resolve INetSocketAddresses when replica connection is unhealthy

This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 5e4df70d1de54463fa349db84f20001dc7e2a03e
Author: Michael Blow <mb...@apache.org>
AuthorDate: Fri Feb 14 15:31:30 2020 -0500

    [NO ISSUE][NET] Preemptively re-resolve INetSocketAddresses when replica connection is unhealthy
    
    Change-Id: I64386b9a1e63d2b2ab792628dc4348a30590cc6f
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/5043
    Reviewed-by: Michael Blow <mb...@apache.org>
    Reviewed-by: Murtadha Hubail <mh...@apache.org>
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
 .../org/apache/asterix/replication/api/PartitionReplica.java  |  9 +++------
 .../asterix/replication/api/ReplicationDestination.java       | 11 ++++-------
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/PartitionReplica.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/PartitionReplica.java
index f2d2496..3226299 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/PartitionReplica.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/PartitionReplica.java
@@ -106,12 +106,9 @@ public class PartitionReplica implements IPartitionReplica {
     }
 
     private void establishReplicaConnection() throws IOException {
-        try {
-            sc = ReplicationProtocol.establishReplicaConnection(appCtx, id.getLocation());
-        } catch (Exception e) {
-            // try to re-resolve the address, in case our replica has had his IP address updated
-            sc = ReplicationProtocol.establishReplicaConnection(appCtx, id.refreshLocation());
-        }
+        // try to re-resolve the address, in case our replica has had his IP address updated, and that is why the
+        // connection is unhealthy...
+        sc = ReplicationProtocol.establishReplicaConnection(appCtx, id.refreshLocation());
     }
 
     public synchronized void close() {
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/ReplicationDestination.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/ReplicationDestination.java
index 782a801..d803756 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/ReplicationDestination.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/api/ReplicationDestination.java
@@ -94,13 +94,10 @@ public class ReplicationDestination implements IReplicationDestination {
     }
 
     protected void establishReplicaConnection(INcApplicationContext appCtx) throws IOException {
-        try {
-            logRepChannel = ReplicationProtocol.establishReplicaConnection(appCtx, resolvedLocation);
-        } catch (Exception e) {
-            // try to re-resolve the address, in case our replica has had his IP address updated
-            resolvedLocation = NetworkUtil.refresh(resolvedLocation);
-            logRepChannel = ReplicationProtocol.establishReplicaConnection(appCtx, resolvedLocation);
-        }
+        // try to re-resolve the address, in case our replica has had his IP address updated, and that is why
+        // the connection is unhealthy...
+        resolvedLocation = NetworkUtil.refresh(resolvedLocation);
+        logRepChannel = ReplicationProtocol.establishReplicaConnection(appCtx, resolvedLocation);
     }
 
     private synchronized void closeLogReplicationChannel() {