[ https://issues.apache.org/jira/browse/IGNITE-21390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Tupitsyn updated IGNITE-21390: ------------------------------------ Description: *IgniteCompute.executeAsync* accepts a set of nodes. If we pass a single node that does not exist in the cluster, the API behavior is confusing and inconsistent across embedded and thin client modes: {code:java} var fakeNode = new ClusterNodeImpl("fakeId", "fakeName", new NetworkAddress("localhost", 12345)); JobExecution<String> execution = ignite.compute().executeAsync(Set.of(fakeNode), units(), "job", null); execution.resultAsync().join(); {code} * Client: throws "Specified node is not present in the cluster" exception with a generic error code (uses deprecated constructor) * Embedded: actually tries to connect to the specified address and throws "io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:12345" Ensure consistent behavior; probably add a dedicated error code. was: *IgniteCompute.executeAsync* accepts a set of nodes. If we pass a single node that does not exist in the cluster, the API behavior is confusing and inconsistent across embedded and thin client modes: {code:java} var fakeNode = new ClusterNodeImpl("fakeId", "fakeName", new NetworkAddress("localhost", 12345)); JobExecution<String> execution = ignite.compute().executeAsync(Set.of(fakeNode), units(), "job", null); execution.resultAsync().join(); {code} > Inconsistent behavior of Compute APIs when target node does not exist > --------------------------------------------------------------------- > > Key: IGNITE-21390 > URL: https://issues.apache.org/jira/browse/IGNITE-21390 > Project: Ignite > Issue Type: Bug > Components: compute, thin client > Affects Versions: 3.0.0-beta1 > Reporter: Pavel Tupitsyn > Assignee: Pavel Tupitsyn > Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > *IgniteCompute.executeAsync* accepts a set of nodes. If we pass a single node > that does not exist in the cluster, the API behavior is confusing and > inconsistent across embedded and thin client modes: > {code:java} > var fakeNode = new ClusterNodeImpl("fakeId", "fakeName", new > NetworkAddress("localhost", 12345)); > JobExecution<String> execution = > ignite.compute().executeAsync(Set.of(fakeNode), units(), "job", null); > execution.resultAsync().join(); > {code} > * Client: throws "Specified node is not present in the cluster" exception > with a generic error code (uses deprecated constructor) > * Embedded: actually tries to connect to the specified address and throws > "io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection > refused: localhost/127.0.0.1:12345" > Ensure consistent behavior; probably add a dedicated error code. -- This message was sent by Atlassian Jira (v8.20.10#820010)