public int getTickTime() { return peer.getTickTime(); }
public int getTickTime() { return peer.getTickTime(); }
@Override public int syncTimeout() { return self.getSyncLimit() * self.getTickTime(); }
long start = Time.currentElapsedTime(); long cur = start; long end = start + self.getInitLimit() * self.getTickTime(); while (!quorumFormed && cur < end) { newLeaderProposal.qvAcksetPairs.wait(end - cur);
long end = start + self.getInitLimit()*self.getTickTime(); while(waitingForNewEpoch && cur < end && !quitWaitForEpoch) { connectingFollowers.wait(end - cur);
long start = Time.currentElapsedTime(); long cur = start; long end = start + self.getInitLimit() * self.getTickTime(); while (!quorumFormed && cur < end) { newLeaderProposal.ackSet.wait(end - cur);
long start = Time.currentElapsedTime(); long cur = start; long end = start + self.getInitLimit()*self.getTickTime(); while(!electionFinished && cur < end) { electingFollowers.wait(end - cur);
long start = Time.currentElapsedTime(); long cur = start; long end = start + self.getInitLimit()*self.getTickTime(); while(waitingForNewEpoch && cur < end) { connectingFollowers.wait(end - cur);
long start = Time.currentElapsedTime(); long cur = start; long end = start + self.getInitLimit()*self.getTickTime(); while(!electionFinished && cur < end) { electingFollowers.wait(end - cur);
public static void shutdown(QuorumPeer qp) { if (qp == null) { return; } try { LOG.info("Shutting down quorum peer " + qp.getName()); qp.shutdown(); Election e = qp.getElectionAlg(); if (e != null) { LOG.info("Shutting down leader election " + qp.getName()); e.shutdown(); } else { LOG.info("No election available to shutdown " + qp.getName()); } LOG.info("Waiting for " + qp.getName() + " to exit thread"); long readTimeout = qp.getTickTime() * qp.getInitLimit(); long connectTimeout = qp.getTickTime() * qp.getSyncLimit(); long maxTimeout = Math.max(readTimeout, connectTimeout); maxTimeout = Math.max(maxTimeout, ClientBase.CONNECTION_TIMEOUT); qp.join(maxTimeout * 2); if (qp.isAlive()) { Assert.fail("QP failed to shutdown in " + (maxTimeout * 2) + " seconds: " + qp.getName()); } } catch (InterruptedException e) { LOG.debug("QP interrupted: " + qp.getName(), e); } }
@Test public void testSocketTimeout() throws Exception { QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 2000, 2, 2); QuorumCnxManager cnxManager = peer.createCnxnManager(); QuorumCnxManager.Listener listener = cnxManager.listener; if(listener != null){ listener.start(); } else { LOG.error("Null listener when initializing cnx manager"); } int port = peers.get(peer.getId()).electionAddr.getPort(); LOG.info("Election port: " + port); Thread.sleep(1000); Socket sock = new Socket(); sock.connect(peers.get(1L).electionAddr, 5000); long begin = Time.currentElapsedTime(); // Read without sending data. Verify timeout. cnxManager.receiveConnection(sock); long end = Time.currentElapsedTime(); if((end - begin) > ((peer.getSyncLimit() * peer.getTickTime()) + 500)) Assert.fail("Waited more than necessary"); cnxManager.halt(); Assert.assertFalse(cnxManager.listener.isAlive()); }
public void converseWithLeader(InputArchive ia, OutputArchive oa, Leader l) throws IOException, InterruptedException { /* we test a normal run. everything should work out well. */ LearnerInfo li = new LearnerInfo(1, 0x10000, 0); byte liBytes[] = new byte[20]; ByteBufferOutputStream.record2ByteBuffer(li, ByteBuffer.wrap(liBytes)); QuorumPacket qp = new QuorumPacket(Leader.FOLLOWERINFO, 0, liBytes, null); oa.writeRecord(qp, null); readPacketSkippingPing(ia, qp); Assert.assertEquals(Leader.LEADERINFO, qp.getType()); Assert.assertEquals(ZxidUtils.makeZxid(1, 0), qp.getZxid()); Assert.assertEquals(ByteBuffer.wrap(qp.getData()).getInt(), 0x10000); Thread.sleep(l.self.getInitLimit()*l.self.getTickTime() + 5000); // The leader didn't get a quorum of acks - make sure that leader's current epoch is not advanced Assert.assertEquals(0, l.self.getCurrentEpoch()); } });
/** * @throws Exception If failed. */ @Test public void testSegmentation3() throws Exception { sesTimeout = 5000; Ignite node0 = startGrid(0); final CountDownLatch l = new CountDownLatch(1); node0.events().localListen(new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { l.countDown(); return false; } }, EventType.EVT_NODE_SEGMENTED); List<TestingZooKeeperServer> srvs = zkCluster.getServers(); assertEquals(3, srvs.size()); try { srvs.get(0).stop(); srvs.get(1).stop(); QuorumPeer qp = srvs.get(2).getQuorumPeer(); // Zookeeper's socket timeout [tickTime * initLimit] + 5 additional seconds for other logic assertTrue(l.await(qp.getTickTime() * qp.getInitLimit() + 5000, TimeUnit.MILLISECONDS)); } finally { zkCluster.close(); zkCluster = ZookeeperDiscoverySpiTestUtil.createTestingCluster(ZK_SRVS); zkCluster.start(); } }
f1.join(leader.self.getInitLimit()*leader.self.getTickTime() + 5000); f2.join(leader.self.getInitLimit()*leader.self.getTickTime() + 5000);
QuorumPeer quorumPeer = q1.main.quorumPeer; int tickTime = quorumPeer.getTickTime(); Assert.assertEquals( "Default value of minimumSessionTimeOut is not considered",
f1.join(leader.self.getInitLimit()*leader.self.getTickTime() + 5000); f2.join(leader.self.getInitLimit()*leader.self.getTickTime() + 5000);
public int getTickTime() { return peer.getTickTime(); }