From 7733645e1e2b5c89b709b87f08ee0b0543bdf72e Mon Sep 17 00:00:00 2001 From: Annie Liang Date: Wed, 11 Nov 2020 08:09:59 -0800 Subject: [PATCH 1/5] fix flakyness of connectionStateListener test --- .../directconnectivity/ConnectionStateListenerTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java index 09306f1a4aed1..b64af68ef1c1d 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java @@ -85,10 +85,9 @@ public void connectionStateListener_OnConnectionEvent( logger.info("expected failed request with reason {}", e); } finally { + TcpServerFactory.shutdownRntbdServer(server); Mockito.verify(addressResolver, Mockito.times(times)).updateAddresses(Mockito.any(), Mockito.any()); } - - TcpServerFactory.shutdownRntbdServer(server); } private Document getDocumentDefinition() { From 831f4cd15a45b002ea3603ff852d727105710117 Mon Sep 17 00:00:00 2001 From: Annie Liang Date: Wed, 11 Nov 2020 08:11:31 -0800 Subject: [PATCH 2/5] fix --- .../directconnectivity/ConnectionStateListenerTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java index b64af68ef1c1d..4112bc6f086b9 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java @@ -86,8 +86,9 @@ public void connectionStateListener_OnConnectionEvent( } finally { TcpServerFactory.shutdownRntbdServer(server); - Mockito.verify(addressResolver, Mockito.times(times)).updateAddresses(Mockito.any(), Mockito.any()); } + + Mockito.verify(addressResolver, Mockito.times(times)).updateAddresses(Mockito.any(), Mockito.any()); } private Document getDocumentDefinition() { From 54cf99745dce1abdf33b282b73ca969eae03bc25 Mon Sep 17 00:00:00 2001 From: Annie Liang Date: Wed, 11 Nov 2020 08:31:42 -0800 Subject: [PATCH 3/5] fix --- .../directconnectivity/TcpServerMock/TcpServer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/TcpServerMock/TcpServer.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/TcpServerMock/TcpServer.java index 9d16be2f74e62..3a5ff7605c8db 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/TcpServerMock/TcpServer.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/TcpServerMock/TcpServer.java @@ -121,6 +121,8 @@ public void initChannel(SocketChannel channel) throws Exception { logger.info("Server channel closed."); }); + } catch (Exception e) { + promise.setFailure(e); } finally { parent.shutdownGracefully().sync(); child.shutdownGracefully().sync(); From 9c2ef9db22b02d8cc9adbac683abdc1f8bb234fb Mon Sep 17 00:00:00 2001 From: Annie Liang Date: Wed, 11 Nov 2020 10:04:53 -0800 Subject: [PATCH 4/5] generate a random port --- .../ConnectionStateListenerTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java index 4112bc6f086b9..07a5df1f73ca6 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java @@ -24,16 +24,18 @@ import org.testng.annotations.Test; import java.util.HashMap; +import java.util.Random; import java.util.UUID; import java.util.concurrent.ExecutionException; import static com.azure.cosmos.implementation.TestUtils.mockDiagnosticsClientContext; public class ConnectionStateListenerTest { + private static final Logger logger = LoggerFactory.getLogger(ConnectionStateListenerTest.class); private static int port = 8082; - private static String serverUriString = "rntbd://localhost:" + port; - private static final Logger logger = LoggerFactory.getLogger(ConnectionStateListenerTest.class); + private static String serverAddress = "rntbd://localhost:"; + private static Random random = new Random(); @DataProvider(name = "connectionStateListenerConfigProvider") public Object[][] connectionStateListenerConfigProvider() { @@ -52,7 +54,9 @@ public void connectionStateListener_OnConnectionEvent( RequestResponseType responseType, int times) throws ExecutionException, InterruptedException { - TcpServer server = TcpServerFactory.startNewRntbdServer(port); + // using a random generated server port + int serverPort = port + random.nextInt(1000); + TcpServer server = TcpServerFactory.startNewRntbdServer(serverPort); // Inject fake response server.injectServerResponse(responseType); @@ -78,7 +82,7 @@ public void connectionStateListener_OnConnectionEvent( getDocumentDefinition(), new HashMap<>()); req.setPartitionKeyRangeIdentity(new PartitionKeyRangeIdentity("fakeCollectionId","fakePartitionKeyRangeId")); - Uri targetUri = new Uri(serverUriString); + Uri targetUri = new Uri(serverAddress + serverPort); try { client.invokeStoreAsync(targetUri, req).block(); } catch (Exception e) { From a93239c83eaf8f233c1c16361f0f6ac219f4ed2b Mon Sep 17 00:00:00 2001 From: Annie Liang Date: Wed, 11 Nov 2020 10:06:44 -0800 Subject: [PATCH 5/5] rename --- .../directconnectivity/ConnectionStateListenerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java index 07a5df1f73ca6..97982d2e3f6e5 100644 --- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java +++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ConnectionStateListenerTest.java @@ -34,7 +34,7 @@ public class ConnectionStateListenerTest { private static final Logger logger = LoggerFactory.getLogger(ConnectionStateListenerTest.class); private static int port = 8082; - private static String serverAddress = "rntbd://localhost:"; + private static String serverAddressPrefix = "rntbd://localhost:"; private static Random random = new Random(); @DataProvider(name = "connectionStateListenerConfigProvider") @@ -82,7 +82,7 @@ public void connectionStateListener_OnConnectionEvent( getDocumentDefinition(), new HashMap<>()); req.setPartitionKeyRangeIdentity(new PartitionKeyRangeIdentity("fakeCollectionId","fakePartitionKeyRangeId")); - Uri targetUri = new Uri(serverAddress + serverPort); + Uri targetUri = new Uri(serverAddressPrefix + serverPort); try { client.invokeStoreAsync(targetUri, req).block(); } catch (Exception e) {