This is an automated email from the ASF dual-hosted git repository. dlych pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit fc9ff17c3f3a94a60f21a501e423cf9b593914dd Author: Murtadha Hubail <[email protected]> AuthorDate: Fri Apr 1 02:32:04 2022 +0300 [NO ISSUE][REP] Updated Replicated Indexes Checkpoint Predicate - user model changes: no - storage format changes: no - interface changes: no Details: - Remove master partitions filter when selecting replicated indexes to checkpoint since the checkpoint will be limited to a single partition. - Ensure any data decrypted before the close is received on SSL sockets is delivered to the reader. - Take a thread dump when an LSN not received from master within the timeout to help in diagnosing any synchronization issues. Change-Id: Ie6f11cc10714ec758b824c49c8c1b31ce7794ca5 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/15943 Reviewed-by: Ali Alsuliman <[email protected]> Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> --- .../org/apache/asterix/replication/logging/RemoteLogsNotifier.java | 5 +---- .../apache/asterix/replication/messaging/MarkComponentValidTask.java | 2 ++ .../main/java/org/apache/hyracks/ipc/sockets/SslSocketChannel.java | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java index 004b640a02..58025fc8f3 100644 --- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java +++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.concurrent.LinkedBlockingQueue; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -86,11 +85,9 @@ class RemoteLogsNotifier implements Runnable { private void checkpointReplicaIndexes(RemoteLogRecord remoteLogMapping, int datasetId, int resourcePartition) throws HyracksDataException { - final Set<Integer> masterPartitions = appCtx.getReplicaManager().getPartitions(); final Predicate<LocalResource> replicaIndexesPredicate = lr -> { DatasetLocalResource dls = (DatasetLocalResource) lr.getResource(); - return dls.getDatasetId() == datasetId && dls.getPartition() == resourcePartition - && !masterPartitions.contains(dls.getPartition()); + return dls.getDatasetId() == datasetId && dls.getPartition() == resourcePartition; }; final Map<Long, LocalResource> resources = localResourceRep.getResources(replicaIndexesPredicate, Collections.singleton(resourcePartition)); diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/MarkComponentValidTask.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/MarkComponentValidTask.java index 172bd59ca1..fa77378619 100644 --- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/MarkComponentValidTask.java +++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/messaging/MarkComponentValidTask.java @@ -37,6 +37,7 @@ import org.apache.asterix.replication.api.IReplicationWorker; import org.apache.asterix.replication.sync.IndexSynchronizer; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.storage.am.lsm.common.impls.IndexComponentFileReference; +import org.apache.hyracks.util.ThreadDumpUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -95,6 +96,7 @@ public class MarkComponentValidTask implements IReplicaTask { if (replicationTimeOut <= 0) { LOGGER.warn("{} seconds passed without receiving flush lsn {} from master for component {}", appCtx.getReplicationProperties().getReplicationTimeOut(), masterLsn, file); + LOGGER.debug("thead dump on receiving flush lsn timeout {}", ThreadDumpUtil::takeDumpString); throw new ReplicationException(new TimeoutException("couldn't receive flush lsn from master")); } final long startTime = System.nanoTime(); diff --git a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/sockets/SslSocketChannel.java b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/sockets/SslSocketChannel.java index f9bf5c702a..ce8496faca 100644 --- a/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/sockets/SslSocketChannel.java +++ b/hyracks-fullstack/hyracks/hyracks-ipc/src/main/java/org/apache/hyracks/ipc/sockets/SslSocketChannel.java @@ -127,7 +127,7 @@ public class SslSocketChannel implements ISocketChannel { break; case CLOSED: close(); - return -1; + return decryptedBytes; default: throw new IllegalStateException("Invalid SSL result status: " + result.getStatus()); }
