Michael Blow has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/2922
Change subject: PLEASE EDIT to provide a meaningful commit message! ...................................................................... PLEASE EDIT to provide a meaningful commit message! The following commits from your working branch will be included: commit 669b9349205f13819115535d33750897aef1947c Author: Michael Blow <[email protected]> Date: Mon Aug 20 07:27:38 2018 -0400 foo commit 167518f535616bea71d4d54a679c1db1590c48ca Author: Michael Blow <[email protected]> Date: Thu Aug 16 14:26:52 2018 -0700 [NO ISSUE][LIC] Fix override of both LICENSE and NOTICE for a single GAV Reviewed-on: https://asterix-gerrit.ics.uci.edu/2918 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Integration-Tests: Jenkins <[email protected]> commit 851e9e5cf1eb81ba8a3b268b67180d26e95e03ec Author: Murtadha Hubail <[email protected]> Date: Thu Aug 16 12:07:51 2018 -0700 [NO ISSUE][NET] Log Channel Info When Buffers Are Exceeded - user model changes: no - storage format changes: no - interface changes: no Details: - When the read buffers of a network channel are exceeded, log the channel information and throw an illegal state exception. Reviewed-on: https://asterix-gerrit.ics.uci.edu/2917 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Reviewed-by: Michael Blow <[email protected]> Change-Id: I3e534c277e52778ec4551247842acc51960a61b4 --- M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/heartbeat/HeartbeatManager.java M hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java M hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java 5 files changed, 27 insertions(+), 5 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/22/2922/1 diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java index ae82803..b5dacfb 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java @@ -217,7 +217,7 @@ webServer.start(); info = new ClusterControllerInfo(ccId, ccConfig.getClientPublicAddress(), ccConfig.getClientPublicPort(), ccConfig.getConsolePublicPort()); - timer.schedule(sweeper, 0, ccConfig.getHeartbeatPeriodMillis()); + timer.schedule(sweeper, 0, ccConfig.getDeadNodeSweepThreshold()); jobLog.open(); startApplication(); diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java index f83df6e..1cb2d05 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java @@ -60,6 +60,7 @@ CONSOLE_PUBLIC_PORT(INTEGER, CONSOLE_LISTEN_PORT), HEARTBEAT_PERIOD(LONG, 10000L), // TODO (mblow): add time unit HEARTBEAT_MAX_MISSES(INTEGER, 5), + DEAD_NODE_SWEEP_THRESHOLD(LONG, HEARTBEAT_PERIOD), PROFILE_DUMP_PERIOD(INTEGER, 0), JOB_HISTORY_SIZE(INTEGER, 10), RESULT_TTL(LONG, 86400000L), // TODO(mblow): add time unit @@ -154,7 +155,9 @@ case HEARTBEAT_PERIOD: return "Sets the time duration between two heartbeats from each node controller in milliseconds"; case HEARTBEAT_MAX_MISSES: - return "Sets the maximum number of missed heartbeats before a node is marked as dead"; + return "Sets the maximum number of missed heartbeats before a node can be considered dead"; + case DEAD_NODE_SWEEP_THRESHOLD: + return "Sets the frequency (in milliseconds) to process nodes that can be considered dead"; case PROFILE_DUMP_PERIOD: return "Sets the time duration between two profile dumps from each node controller in " + "milliseconds; 0 to disable"; @@ -326,6 +329,14 @@ configManager.set(Option.HEARTBEAT_MAX_MISSES, heartbeatMaxMisses); } + public long getDeadNodeSweepThreshold() { + return getAppConfig().getLong(Option.DEAD_NODE_SWEEP_THRESHOLD); + } + + public void setDeadNodeSweepThreshold(long deadNodeSweepThreshold) { + configManager.set(Option.DEAD_NODE_SWEEP_THRESHOLD, deadNodeSweepThreshold); + } + public int getProfileDumpPeriod() { return getAppConfig().getInt(Option.PROFILE_DUMP_PERIOD); } diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/heartbeat/HeartbeatManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/heartbeat/HeartbeatManager.java index 0ea6399..08b8c11 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/heartbeat/HeartbeatManager.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/heartbeat/HeartbeatManager.java @@ -63,7 +63,6 @@ } public void notifyAck(HyracksDataException exception) { - // TODO: we should also reregister in case of no ack LOGGER.debug("ack rec'd from {} w/ exception: {}", ccId::toString, () -> String.valueOf(exception)); if (exception != null && exception.matches(ErrorCode.HYRACKS, ErrorCode.NO_SUCH_NODE)) { LOGGER.info("{} indicates it does not recognize us; force a reconnect", ccId); diff --git a/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java b/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java index 05ac62b..e72404c 100644 --- a/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java +++ b/hyracks-fullstack/hyracks/hyracks-maven-plugins/license-automation-plugin/src/main/java/org/apache/hyracks/maven/license/LicenseMojo.java @@ -364,13 +364,16 @@ MavenProject dep = dependencyGavMap.get(gav); if (dep == null) { getLog().warn("Unused override dependency " + gav + "; ignoring..."); - } else if (override.getUrl() != null) { + continue; + } + if (override.getUrl() != null) { final List<Pair<String, String>> newLicense = Collections.singletonList(new ImmutablePair<>(override.getUrl(), override.getName())); List<Pair<String, String>> prevLicense = dependencyLicenseMap.put(dep, newLicense); warnUnlessFlag(dep, IGNORE_LICENSE_OVERRIDE, "license list for " + toGav(dep) + " changed with <override>; was: " + prevLicense + ", now: " + newLicense); - } else if (override.getNoticeUrl() != null) { + } + if (override.getNoticeUrl() != null) { noticeOverrides.put(gav, override.getNoticeUrl()); warnUnlessFlag(dep, IGNORE_NOTICE_OVERRIDE, "notice for " + toGav(dep) + " changed with <override>; now: " + override.getNoticeUrl()); diff --git a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java index 432382a..049cfd8 100644 --- a/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java +++ b/hyracks-fullstack/hyracks/hyracks-net/src/main/java/org/apache/hyracks/net/protocols/muxdemux/FullFrameChannelReadInterface.java @@ -27,9 +27,12 @@ import org.apache.hyracks.api.comm.IBufferFactory; import org.apache.hyracks.api.comm.IChannelControlBlock; import org.apache.hyracks.api.exceptions.NetException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; public class FullFrameChannelReadInterface extends AbstractChannelReadInterface { + private static final Logger LOGGER = LogManager.getLogger(); private final Deque<ByteBuffer> riEmptyStack; private final IChannelControlBlock ccb; @@ -64,6 +67,12 @@ currentReadBuffer = bufferFactory.createBuffer(); } } + if (currentReadBuffer == null) { + if (LOGGER.isWarnEnabled()) { + LOGGER.warn("{} read buffers exceeded. Current empty buffers: {}", ccb, riEmptyStack.size()); + } + throw new IllegalStateException(ccb + " read buffers exceeded"); + } int rSize = Math.min(size, currentReadBuffer.remaining()); if (rSize > 0) { currentReadBuffer.limit(currentReadBuffer.position() + rSize); -- To view, visit https://asterix-gerrit.ics.uci.edu/2922 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3e534c277e52778ec4551247842acc51960a61b4 Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: stabilization-f69489 Gerrit-Owner: Michael Blow <[email protected]>
