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 2018/08/16 00:26:55 UTC
asterixdb git commit: [NO ISSUE][NET] Propagate Network Failure Error
Codes
Repository: asterixdb
Updated Branches:
refs/heads/master e608b742c -> f694895e3
[NO ISSUE][NET] Propagate Network Failure Error Codes
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Pass the network error code to the channel
to determine whether the error should be
sent to the receiver or not.
Change-Id: I29cffa916df9fecc9942f449ba6c5ca7c84b43b3
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2912
Reviewed-by: Michael Blow <mb...@apache.org>
Tested-by: Michael Blow <mb...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/f694895e
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/f694895e
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/f694895e
Branch: refs/heads/master
Commit: f694895e3b07bb213978d8d144ef5ff73b3d81bf
Parents: e608b74
Author: Murtadha Hubail <mh...@apache.org>
Authored: Wed Aug 15 15:47:11 2018 -0700
Committer: Michael Blow <mb...@apache.org>
Committed: Wed Aug 15 17:26:09 2018 -0700
----------------------------------------------------------------------
.../org/apache/hyracks/comm/channels/NetworkOutputChannel.java | 4 ++--
.../java/org/apache/hyracks/control/nc/net/NetworkManager.java | 2 +-
.../apache/hyracks/control/nc/net/ResultNetworkManager.java | 5 +++--
.../apache/hyracks/control/nc/partitions/PartitionManager.java | 6 ++++--
.../hyracks/control/nc/result/ResultPartitionReader.java | 3 ++-
5 files changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f694895e/hyracks-fullstack/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java b/hyracks-fullstack/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java
index 8bee56e..334fb5c 100644
--- a/hyracks-fullstack/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java
+++ b/hyracks-fullstack/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java
@@ -104,8 +104,8 @@ public class NetworkOutputChannel implements IFrameWriter {
ccb.getWriteInterface().getFullBufferAcceptor().close();
}
- public void abort() {
- ccb.getWriteInterface().getFullBufferAcceptor().error(AbstractChannelWriteInterface.REMOTE_ERROR_CODE);
+ public void abort(int ecode) {
+ ccb.getWriteInterface().getFullBufferAcceptor().error(ecode);
synchronized (NetworkOutputChannel.this) {
aborted = true;
NetworkOutputChannel.this.notifyAll();
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f694895e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/NetworkManager.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/NetworkManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/NetworkManager.java
index 98693d0..8b02f9c 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/NetworkManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/NetworkManager.java
@@ -139,7 +139,7 @@ public class NetworkManager implements IChannelConnectionFactory {
@Override
public void error(int ecode) {
if (noc != null) {
- noc.abort();
+ noc.abort(ecode);
}
}
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f694895e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/ResultNetworkManager.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/ResultNetworkManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/ResultNetworkManager.java
index 6927a58..ee821d6 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/ResultNetworkManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/net/ResultNetworkManager.java
@@ -33,6 +33,7 @@ import org.apache.hyracks.api.result.IResultPartitionManager;
import org.apache.hyracks.api.result.ResultSetId;
import org.apache.hyracks.comm.channels.IChannelConnectionFactory;
import org.apache.hyracks.comm.channels.NetworkOutputChannel;
+import org.apache.hyracks.net.protocols.muxdemux.AbstractChannelWriteInterface;
import org.apache.hyracks.net.protocols.muxdemux.ChannelControlBlock;
import org.apache.hyracks.net.protocols.muxdemux.IChannelOpenListener;
import org.apache.hyracks.net.protocols.muxdemux.MultiplexedConnection;
@@ -146,7 +147,7 @@ public class ResultNetworkManager implements IChannelConnectionFactory {
partitionManager.initializeResultPartitionReader(jobId, rsId, partition, noc);
} catch (HyracksException e) {
LOGGER.warn("Failed to initialize result partition reader", e);
- noc.abort();
+ noc.abort(AbstractChannelWriteInterface.REMOTE_ERROR_CODE);
}
}
@@ -158,7 +159,7 @@ public class ResultNetworkManager implements IChannelConnectionFactory {
@Override
public void error(int ecode) {
if (noc != null) {
- noc.abort();
+ noc.abort(ecode);
}
}
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f694895e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/partitions/PartitionManager.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/partitions/PartitionManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/partitions/PartitionManager.java
index d023ce9..9ac7168 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/partitions/PartitionManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/partitions/PartitionManager.java
@@ -41,6 +41,7 @@ import org.apache.hyracks.control.common.job.PartitionState;
import org.apache.hyracks.control.nc.NodeControllerService;
import org.apache.hyracks.control.nc.io.WorkspaceFileFactory;
import org.apache.hyracks.control.nc.resources.DefaultDeallocatableRegistry;
+import org.apache.hyracks.net.protocols.muxdemux.AbstractChannelWriteInterface;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@@ -105,7 +106,7 @@ public class PartitionManager {
public synchronized void registerPartitionRequest(PartitionId partitionId, NetworkOutputChannel writer) {
if (failedJobsCache.getIfPresent(partitionId.getJobId()) != null) {
- writer.abort();
+ writer.abort(AbstractChannelWriteInterface.REMOTE_ERROR_CODE);
}
List<IPartition> pList = availablePartitionMap.get(partitionId);
if (pList != null && !pList.isEmpty()) {
@@ -137,7 +138,8 @@ public class PartitionManager {
if (!jobPartitions.isEmpty() || !pendingRequests.isEmpty()) {
ncs.getExecutor().execute(() -> {
jobPartitions.forEach(IDeallocatable::deallocate);
- pendingRequests.forEach(NetworkOutputChannel::abort);
+ pendingRequests.forEach(networkOutputChannel -> networkOutputChannel
+ .abort(AbstractChannelWriteInterface.REMOTE_ERROR_CODE));
});
}
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/f694895e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionReader.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionReader.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionReader.java
index 39cdc1e..3774530 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionReader.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionReader.java
@@ -25,6 +25,7 @@ import org.apache.hyracks.api.comm.IFrameWriter;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.partitions.ResultSetPartitionId;
import org.apache.hyracks.comm.channels.NetworkOutputChannel;
+import org.apache.hyracks.net.protocols.muxdemux.AbstractChannelWriteInterface;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -82,7 +83,7 @@ public class ResultPartitionReader {
}
} catch (Exception e) {
LOGGER.error(() -> "failed to send result partition " + resultState.getResultSetPartitionId(), e);
- channel.abort();
+ channel.abort(AbstractChannelWriteInterface.REMOTE_ERROR_CODE);
} finally {
close();
}