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

Reply via email to