public void killServer() throws Exception { if (zkc != null) { zkc.close(); } // shutdown ZK server if (serverFactory != null) { serverFactory.shutdown(); Assert.assertTrue(ClientBase.waitForServerDown(getZooKeeperConnectString(), ClientBase.CONNECTION_TIMEOUT), "waiting for server down"); } if (zks != null) { zks.getTxnLogFactory().close(); } // ServerStats.unregister(); FileUtils.deleteDirectory(ZkTmpDir); } }
File snapFile = factory.zkServer.getTxnLogFactory().findMostRecentSnapshot(); LOG.info("Corrupting " + snapFile); RandomAccessFile raf = new RandomAccessFile(snapFile, "rws");
@Test public void testTxnLogElapsedSyncTime() throws IOException { File tmpDir = ClientBase.createEmptyTestDir(); FileTxnSnapLog fileTxnSnapLog = new FileTxnSnapLog(new File(tmpDir, "data"), new File(tmpDir, "data_txnlog")); ZooKeeperServer zks = new ZooKeeperServer(); zks.setTxnLogFactory(fileTxnSnapLog); ZooKeeperServerBean serverBean = new ZooKeeperServerBean(zks); long elapsedTime = serverBean.getTxnLogElapsedSyncTime(); assertEquals(-1, elapsedTime); TxnHeader hdr = new TxnHeader(1, 1, 1, 1, ZooDefs.OpCode.setData); Record txn = new SetDataTxn("/foo", new byte[0], 1); Request req = new Request(0, 0, 0, hdr, txn, 0); try { zks.getTxnLogFactory().append(req); zks.getTxnLogFactory().commit(); elapsedTime = serverBean.getTxnLogElapsedSyncTime(); assertNotEquals(-1, elapsedTime); assertEquals(elapsedTime, serverBean.getTxnLogElapsedSyncTime()); } finally { fileTxnSnapLog.close(); } }
f.shutdown(); zks.shutdown(); zks.getTxnLogFactory().close();
FileTxnSnapLog snapLog = zooKeeperServer.getTxnLogFactory(); FileTxnSnapLog fileTxnSnapLogWithError = new FileTxnSnapLog( snapLog.getDataDir(), snapLog.getSnapDir()) {
FileTxnSnapLog txnLogFactory = zks.getTxnLogFactory(); List<File> snapshots = txnLogFactory.findNRecentSnapshots(10); Assert.assertTrue("We have a snapshot to corrupt", snapshots.size() > 0);
zks.getTxnLogFactory().close(); Assert.assertTrue("waiting for server to shutdown", ClientBase.waitForServerDown(HOSTPORT, CONNECTION_TIMEOUT));
zks.getTxnLogFactory().close(); zks.shutdown(); Assert.assertTrue("waiting for server to shutdown", zks.getTxnLogFactory().close(); zks.shutdown();
FileTxnSnapLog snapLog = leader.getActiveServer().getTxnLogFactory(); FileTxnSnapLog fileTxnSnapLogWithError = new FileTxnSnapLog( snapLog.getDataDir(), snapLog.getSnapDir()) {