From 0b4a89d015ba61b3f9f89a30c71b44bdd35f35fe Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Fri, 30 Oct 2026 20:05:37 +0100 Subject: [PATCH 1/3] IGNITE-29239 Fix flaky TcpDiscoverySelfTest.testGetEffectiveNodeAddressesFiltersUnresolvedAddressWithoutNpe --- .../apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java index ab1fc3a9e9613..023c8e4da3c88 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java @@ -2985,7 +2985,7 @@ public TestTcpDiscoveryNodeWithUnresolvedAddress(TcpDiscoveryNode delegate) { List addrs = new ArrayList<>(super.socketAddresses()); // Unresolved address: getAddress() returns null. - addrs.add(new InetSocketAddress("unresolved-host-name-that-does-not-resolve-xyz", 47500)); + addrs.add(InetSocketAddress.createUnresolved("unresolved-host-name-that-does-not-resolve-xyz", 47500)); return addrs; } From 38b51b6957ca7c04eb210e115aa1dcbf2bad1b50 Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Sat, 31 Oct 2026 00:40:41 +0500 Subject: [PATCH 2/3] cleanup --- .../discovery/tcp/TcpDiscoverySelfTest.java | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java index 023c8e4da3c88..b7796dec2a451 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java @@ -2383,32 +2383,18 @@ public void testGetEffectiveNodeAddressesFiltersUnresolvedAddressWithoutNpe() th assertNotNull(realNode); - // Wrap real node so that socketAddresses() returns an unresolved InetSocketAddress. TcpDiscoveryNode nodeWithUnresolvedAddr = new TestTcpDiscoveryNodeWithUnresolvedAddress(realNode); - // Ensure the wrapped node is considered different from the local node by UUID. assertNotEquals(ignite1.localNode().id(), nodeWithUnresolvedAddr.id()); - // Verify test node has at least one unresolved address. - boolean hasUnresolved = false; - - for (InetSocketAddress addr : nodeWithUnresolvedAddr.socketAddresses()) { - if (addr.getAddress() == null) { - hasUnresolved = true; - - break; - } - } - - assertTrue("Test node should have at least one unresolved address", hasUnresolved); + assertTrue("Test node should have at least one unresolved address", + nodeWithUnresolvedAddr.socketAddresses().stream().anyMatch(addr -> addr.getAddress() == null)); // Should not throw NPE; unresolved addresses must be filtered out. LinkedHashSet effAddrs = spi1.getEffectiveNodeAddresses(nodeWithUnresolvedAddr, false); - assertNotNull(effAddrs); - - for (InetSocketAddress addr : effAddrs) - assertNotNull("Unresolved address (getAddress() == null) should have been filtered out", addr.getAddress()); + assertTrue("Unresolved address (getAddress() == null) should have been filtered out", + effAddrs.stream().noneMatch(addr -> addr.getAddress() == null)); } finally { stopAllGrids(); @@ -2984,8 +2970,7 @@ public TestTcpDiscoveryNodeWithUnresolvedAddress(TcpDiscoveryNode delegate) { @Override public Collection socketAddresses() { List addrs = new ArrayList<>(super.socketAddresses()); - // Unresolved address: getAddress() returns null. - addrs.add(InetSocketAddress.createUnresolved("unresolved-host-name-that-does-not-resolve-xyz", 47500)); + addrs.add(InetSocketAddress.createUnresolved("unresolved", 47500)); return addrs; } From 3ecc708602ddaa4fe7710676a895bd93fb3ac208 Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Mon, 2 Nov 2026 11:55:54 +0500 Subject: [PATCH 3/3] fix --- .../apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java index b7796dec2a451..d358985fcb782 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java @@ -2970,6 +2970,7 @@ public TestTcpDiscoveryNodeWithUnresolvedAddress(TcpDiscoveryNode delegate) { @Override public Collection socketAddresses() { List addrs = new ArrayList<>(super.socketAddresses()); + // Unlike new InetSocketAddress(host, port), does no DNS lookup, so getAddress() is always null. addrs.add(InetSocketAddress.createUnresolved("unresolved", 47500)); return addrs;