From d547b5b263aac45d2d220018384e58b5cbafc5b8 Mon Sep 17 00:00:00 2001 From: Pavel Tupitsyn Date: Tue, 31 Mar 2026 08:52:00 +0300 Subject: [PATCH 1/3] IGNITE-28345 .NET: Unexpected notification ID received from the server https://issues.apache.org/jira/browse/IGNITE-28345 --- .../test/platform_tests/PlatformDotnetTestsLinux.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.teamcity/test/platform_tests/PlatformDotnetTestsLinux.kt b/.teamcity/test/platform_tests/PlatformDotnetTestsLinux.kt index d070770fde3..e7ce4f8df4c 100644 --- a/.teamcity/test/platform_tests/PlatformDotnetTestsLinux.kt +++ b/.teamcity/test/platform_tests/PlatformDotnetTestsLinux.kt @@ -105,6 +105,18 @@ object PlatformDotnetTestsLinux : BuildType({ failureMessage = "NullReferenceException in log" reverse = false } + failOnText { + conditionType = BuildFailureOnText.ConditionType.CONTAINS + pattern = "Unexpected notification ID" + failureMessage = "Unexpected notification ID in log" + reverse = false + } + failOnText { + conditionType = BuildFailureOnText.ConditionType.CONTAINS + pattern = "Unexpected response ID" + failureMessage = "Unexpected response ID in log" + reverse = false + } } requirements { From d77b4d644e10915bc911cd8e7bc4a6a635c547ff Mon Sep 17 00:00:00 2001 From: Pavel Tupitsyn Date: Tue, 31 Mar 2026 09:15:10 +0300 Subject: [PATCH 2/3] IGNITE-28345 Compute: skip notification on executionFut fail --- .../compute/ClientComputeExecuteRequest.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteRequest.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteRequest.java index ed925e27a24..c5704dc05fb 100644 --- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteRequest.java +++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteRequest.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.UUID; import java.util.concurrent.CompletableFuture; -import java.util.function.Function; import org.apache.ignite.client.handler.ClientContext; import org.apache.ignite.client.handler.NotificationSender; import org.apache.ignite.client.handler.ResponseWriter; @@ -131,12 +130,8 @@ static CompletableFuture sendResultAndState( CompletableFuture> executionFut, NotificationSender notificationSender ) { - return executionFut.handle((execution, throwable) -> { - if (throwable != null) { - notificationSender.sendNotification(null, throwable, NULL_HYBRID_TIMESTAMP); - return CompletableFuture.failedFuture(throwable); - } else { - return execution.resultAsync().whenComplete((val, err) -> + return executionFut.thenCompose(execution -> + execution.resultAsync().whenComplete((val, err) -> execution.stateAsync().whenComplete((state, errState) -> { try { notificationSender.sendNotification( @@ -150,9 +145,7 @@ static CompletableFuture sendResultAndState( } catch (Throwable e) { LOG.error("Failed to send job result notification: " + e.getMessage(), e); } - })); - } - }).thenCompose(Function.identity()); + }))); } static void packSubmitResult(ClientMessagePacker out, UUID jobId, ClusterNode node) { From 5b810a231abc879fba3fe6b49082098806d5f53e Mon Sep 17 00:00:00 2001 From: Pavel Tupitsyn Date: Tue, 31 Mar 2026 11:31:23 +0300 Subject: [PATCH 3/3] Fix ClientComputeExecuteMapReduceRequest --- .../ClientComputeExecuteMapReduceRequest.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteMapReduceRequest.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteMapReduceRequest.java index 08a4bac84d9..65cc1c39cf1 100644 --- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteMapReduceRequest.java +++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/compute/ClientComputeExecuteMapReduceRequest.java @@ -82,7 +82,6 @@ public static CompletableFuture process( .clientAddress(clientContext.remoteAddress().toString()); TaskExecution execution = compute.submitMapReduceInternal(taskDescriptor, metadataBuilder, arg, null); - sendTaskResult(execution, notificationSender); var idsAsync = execution.idsAsync() .handle((ids, ex) -> { @@ -90,10 +89,14 @@ public static CompletableFuture process( return ex == null ? ids : Collections.emptyList(); }); - return execution.idAsync().thenCompose(id -> idsAsync.thenApply(ids -> out -> { - //noinspection DataFlowIssue - out.packUuid(id); - packJobIds(out, ids); + return execution.idAsync().thenCompose(id -> idsAsync.thenApply(ids -> { + sendTaskResult(execution, notificationSender); + + return out -> { + //noinspection DataFlowIssue + out.packUuid(id); + packJobIds(out, ids); + }; })); }