[
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)