private void pingRwServer() throws RWServerFoundException { String result = null; InetSocketAddress addr = hostProvider.next(0); LOG.info("Checking server " + addr + " for being r/w." + " Timeout " + pingRwTimeout);
connectTimeout = negotiatedSessionTimeout / hostProvider.size(); hostProvider.onConnected(); sessionId = _sessionId; sessionPasswd = _sessionPasswd;
@Test public void testOnConnectDoesNotReset() { HostProvider hostProvider = getHostProvider((byte) 2); InetSocketAddress first = hostProvider.next(0); hostProvider.onConnected(); InetSocketAddress second = hostProvider.next(0); assertNotSame(first, second); }
boolean disconnectRequired = hostProvider.updateServerList(newList, new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, 1}), 1235)); assertTrue(disconnectRequired); InetSocketAddress addr = hostProvider.next(0); assertTrue(newComing.contains(addr)); assertTrue(!seen.contains(addr)); InetSocketAddress addr = hostProvider.next(0); assertTrue(oldStaying.contains(addr)); assertTrue(!seen.contains(addr)); InetSocketAddress first = hostProvider.next(0); assertTrue(first != null); for (int i = 0; i < newList.size() - 1; i++) { hostProvider.next(0); assertEquals(first, hostProvider.next(0)); hostProvider.onConnected();
/** * Number of machines stayed the same, my server is in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_NoDisconnection2() { // Arrange // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3); // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(3); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertFalse(disconnectRequired); hostProvider.onConnected(); }
@Test public void testUpdateServerList_ResolvedWithResolvedAddress_NoDisconnect() throws UnknownHostException { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost is which the client is currently connecting to, it should be resolved", currentHost.isUnresolved(), is(false)); // Act InetSocketAddress replaceHost = new InetSocketAddress(InetAddress.getByAddress(currentHost.getHostString(), currentHost.getAddress().getAddress()), currentHost.getPort()); assertThat("Replace host must be resolved in this test case", replaceHost.isUnresolved(), is(false)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, equalTo(false)); }
@Test public void testClientReconnect() throws IOException, InterruptedException { HostProvider hostProvider = mock(HostProvider.class); when(hostProvider.size()).thenReturn(1); InetSocketAddress inaddr = new InetSocketAddress("127.0.0.1", 1111); when(hostProvider.next(anyLong())).thenReturn(inaddr); ZooKeeper zk = mock(ZooKeeper.class); when(zk.getClientConfig()).thenReturn(new ZKClientConfig()); sc = SocketChannel.open(); ClientCnxnSocketNIO nioCnxn = new MockCnxn(); ClientWatchManager watcher = mock(ClientWatchManager.class); ClientCnxn clientCnxn = new ClientCnxn( "tmp", hostProvider, 5000, zk, watcher, nioCnxn, false); clientCnxn.start(); countDownLatch.await(5000, TimeUnit.MILLISECONDS); Assert.assertTrue(countDownLatch.getCount() == 0); clientCnxn.close(); } }
this.chrootPath = chrootPath; connectTimeout = sessionTimeout / hostProvider.size(); readTimeout = sessionTimeout * 2 / 3; readOnly = canBeReadOnly;
InetSocketAddress currentHost = (InetSocketAddress) clientCnxnSocket.getRemoteSocketAddress(); boolean reconfigMode = hostProvider.updateServerList(serverAddresses, currentHost);
curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; hostProviderArray[i].onConnected(); disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; hostProviderArray[i].onConnected(); disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; hostProviderArray[i].onConnected(); disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; hostProviderArray[i].onConnected(); disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]); if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0); numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++; hostProviderArray[i].onConnected();
/** * Number of machines became smaller, my server is not in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_Disconnection1() { // Arrange // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3); // [testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(2); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertTrue(disconnectRequired); hostProvider.onConnected(); }
@Test public void testUpdateServerList_UnResolvedWithResolvedAddress_ForceDisconnect() throws UnknownHostException { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.zookeepertest.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost not resolvable in this test case", currentHost.isUnresolved(), is(true)); // Act byte[] addr = new byte[] { 10, 0, 0, 1 }; InetSocketAddress replaceHost = new InetSocketAddress(InetAddress.getByAddress(currentHost.getHostString(), addr), currentHost.getPort()); assertThat("Replace host must be resolved in this test case", replaceHost.isUnresolved(), is(false)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, equalTo(false)); }
this.chrootPath = chrootPath; connectTimeout = sessionTimeout / hostProvider.size(); readTimeout = sessionTimeout * 2 / 3; readOnly = canBeReadOnly;
/** * Number of machines becomes smaller, my server is in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_NoDisconnection1() { // Arrange // [testhost-4.testdomain.com:1238, testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(4); // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(3); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertFalse(disconnectRequired); hostProvider.onConnected(); }
@Test public void testUpdateServerList_ResolvedWithUnResolvedAddress_ForceDisconnect() { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost is which the client is currently connecting to, it should be resolved", currentHost.isUnresolved(), is(false)); // Act InetSocketAddress replaceHost = InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235); assertThat("Replace host must be unresolved in this test case", replaceHost.isUnresolved(), is(true)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, is(false)); }
private void pingRwServer() throws RWServerFoundException, UnknownHostException { String result = null; InetSocketAddress addr = hostProvider.next(0); LOG.info("Checking server " + addr + " for being r/w." + " Timeout " + pingRwTimeout);
connectTimeout = negotiatedSessionTimeout / hostProvider.size(); hostProvider.onConnected(); sessionId = _sessionId; sessionPasswd = _sessionPasswd;
/** * Number of machines stayed the same, my server is not in the new cluster */ @Test public void testUpdateServerList_UnresolvedHostnames_Disconnection2() { // Arrange // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3); // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235] Collection<InetSocketAddress> newList = getUnresolvedHostnames(3); InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-4.testdomain.com", 1237); // Act boolean disconnectRequired = hostProvider.updateServerList(newList, myServer); // Assert assertTrue(disconnectRequired); hostProvider.onConnected(); }
@Test public void testUpdateServerList_UnResolvedWithUnResolvedAddress_ForceDisconnect() { // Arrange // Create a HostProvider with a list of unresolved server address(es) List<InetSocketAddress> addresses = Collections.singletonList( InetSocketAddress.createUnresolved("testhost-1.zookeepertest.zk", 1235) ); HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver()); InetSocketAddress currentHost = hostProvider.next(100); assertThat("CurrentHost is not resolvable in this test case", currentHost.isUnresolved(), is(true)); // Act InetSocketAddress replaceHost = InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235); assertThat("Replace host must be unresolved in this test case", replaceHost.isUnresolved(), is(true)); boolean disconnect = hostProvider.updateServerList(new ArrayList<>( Collections.singletonList(replaceHost)), currentHost ); // Assert assertThat(disconnect, is(true)); }