public static void main(String[] args) { // Parse the input args. if (!parseInputArgs(args)) { System.exit(EXIT_FAILED); } System.out.println("Stop the current Tachyon cluster..."); stopCluster(); // Set NO_STORE and NO_PERSIST so that this test can work without TachyonWorker. sOutStreamOptions = new OutStreamOptions.Builder(new TachyonConf()) .setTachyonStorageType(TachyonStorageType.NO_STORE) .setUnderStorageType(UnderStorageType.NO_PERSIST) .build(); // Set the max retry to avoid long pending for client disconnect. if (System.getProperty(Constants.MASTER_RETRY_COUNT) == null) { System.setProperty(Constants.MASTER_RETRY_COUNT, "10"); } System.out.println("Start Journal Crash Test..."); long startTimeMs = System.currentTimeMillis(); boolean ret = true; startMaster(); int rounds = 0; while (System.currentTimeMillis() - startTimeMs < sTotalTimeMs) { rounds++; long aliveTimeMs = (long) (Math.random() * sMaxAliveTimeMs) + 100; LOG.info("Round {}: Planning Master Alive Time {}ms.", rounds, aliveTimeMs); System.out.println("Round " + rounds + " : Launch Clients..."); sTfs = TachyonFileSystemFactory.get(); sOldTfs = TachyonFS.get(ClientContext.getConf()); try { sTfs.delete(sTfs.open(new TachyonURI(sTestDir))); } catch (Exception ioe) { // Test Directory not exist } // Launch all the client threads. setupClientThreads(); for (Thread thread : sClientThreadList) { thread.start(); } CommonUtils.sleepMs(LOG, aliveTimeMs); System.out.println("Round " + rounds + " : Crash Master..."); killMaster(); for (ClientThread clientThread : sClientThreadList) { clientThread.setIsStopped(true); } for (Thread thread : sClientThreadList) { try { thread.join(); } catch (InterruptedException e) { LOG.error("Error when waiting thread", e); } } System.out.println("Round " + rounds + " : Check Status..."); startMaster(); boolean checkSuccess = false; try { checkSuccess = checkStatus(); } catch (Exception e) { LOG.error("Failed to check status", e); } Utils.printPassInfo(checkSuccess); ret &= checkSuccess; } stopCluster(); System.exit(ret ? EXIT_SUCCESS : EXIT_FAILED); }
public TfsShell(TachyonConf tachyonConf) { mTachyonConf = tachyonConf; mCloser = Closer.create(); mTfs = TachyonFileSystemFactory.get(); }