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

Thin client: connecting to thick client node is broken

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.16
    • 2.17
    • thin client
    • None

    Description

      • Thick clients have thin client connector enabled by default
      • ClientClusterGroupGetNodesEndpointsResponse excludes client nodes

      As a result:

      • Thin client connects to a thick client node
      • Gets node endpoints - current connection is not there
      • Thin client closes current connection immediately

      The following test demonstrates the problem. While setForceServerMode is deprecated, there could be other reasons for other nodes to be unreachable.

          @Test
          public void testConnectToThickClient() {
              TcpDiscoverySpi discoSpi = new TcpDiscoverySpi()
                      .setIpFinder(new TcpDiscoveryVmIpFinder(true))
                      .setForceServerMode(true);
      
              IgniteConfiguration igniteCfg = new IgniteConfiguration()
                      .setDiscoverySpi(discoSpi);
      
              try (Ignite ignored = Ignition.start(igniteCfg);
                   IgniteClient client = Ignition.startClient(new ClientConfiguration())
              ) {
                  assertNotNull(client);
              }
          }
      

      Potential solutions:

      • Disable client connector on thick client nodes by default (breaking change?)
      • Fix ClientClusterGroupGetNodesEndpointsResponse to include thick client nodes if connector is enabled, and let the client decide whether to connect to them or not

      Attachments

        Activity

          People

            Unassigned Unassigned
            ptupitsyn Pavel Tupitsyn
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: