Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-21390

Inconsistent behavior of Compute APIs when target node does not exist

    XMLWordPrintableJSON

Details

    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:

              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();
      
      • 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.

      Attachments

        Issue Links

          Activity

            People

              vpakhnushev Vadim Pakhnushev
              ptupitsyn Pavel Tupitsyn
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 50m
                  1h 50m