SammyVimes commented on code in PR #1579:
URL: https://github.com/apache/ignite-3/pull/1579#discussion_r1087790227
##########
modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java:
##########
@@ -217,20 +217,24 @@ private Replica startReplicaInternal(
ReplicationGroupId replicaGrpId,
ReplicaListener listener
) {
+ Replica newReplica = new Replica(replicaGrpId, listener);
+
replicas.compute(replicaGrpId, (replicationGroupId, replicaFut) -> {
if (replicaFut == null) {
- replicaFut = CompletableFuture.completedFuture(new
Replica(replicaGrpId, listener));
-
- return replicaFut;
+ return CompletableFuture.completedFuture(newReplica);
} else {
- replicaFut.complete(new Replica(replicaGrpId, listener));
+ if (replicaFut.isDone() && !replicaFut.isCancelled() &&
!replicaFut.isCompletedExceptionally()) {
+ return CompletableFuture.completedFuture(newReplica);
+ }
+
+ replicaFut.complete(newReplica);
Review Comment:
I'm not sure this should be addressed in current PR, probably we should
cleanup CompletableFuture usage in a single ticket (or multiple separate
tickets)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]