/** * Main program loop for DirectoryScanner. Runs {@link reconcile()} * and handles any exceptions. */ @Override public void run() { try { if (!shouldRun) { //shutdown has been activated LOG.warn("this cycle terminating immediately because 'shouldRun' has been deactivated"); return; } //We're are okay to run - do it reconcile(); } catch (Exception e) { //Log and continue - allows Executor to run again next cycle LOG.error("Exception during DirectoryScanner execution - will continue next cycle", e); } catch (Error er) { //Non-recoverable error - re-throw after logging the problem LOG.error("System Error during DirectoryScanner execution - permanently terminating periodic scanner", er); throw er; } }
/** * Main program loop for DirectoryScanner. Runs {@link reconcile()} * and handles any exceptions. */ @Override public void run() { try { if (!shouldRun) { //shutdown has been activated LOG.warn("this cycle terminating immediately because 'shouldRun' has been deactivated"); return; } //We're are okay to run - do it reconcile(); } catch (Exception e) { //Log and continue - allows Executor to run again next cycle LOG.error("Exception during DirectoryScanner execution - will continue next cycle", e); } catch (Error er) { //Non-recoverable error - re-throw after logging the problem LOG.error("System Error during DirectoryScanner execution - permanently terminating periodic scanner", er); throw er; } }
/** * Main program loop for DirectoryScanner. Runs {@link reconcile()} * and handles any exceptions. */ @Override public void run() { try { if (!shouldRun) { //shutdown has been activated LOG.warn("this cycle terminating immediately because 'shouldRun' has been deactivated"); return; } //We're are okay to run - do it reconcile(); } catch (Exception e) { //Log and continue - allows Executor to run again next cycle LOG.error("Exception during DirectoryScanner execution - will continue next cycle", e); } catch (Error er) { //Non-recoverable error - re-throw after logging the problem LOG.error("System Error during DirectoryScanner execution - permanently terminating periodic scanner", er); throw er; } }
private void scan(long totalBlocks, int diffsize, long missingMetaFile, long missingBlockFile, long missingMemoryBlocks, long mismatchBlocks) { scanner.reconcile(); assertEquals(totalBlocks, scanner.totalBlocks); assertEquals(diffsize, scanner.diff.size()); assertEquals(missingMetaFile, scanner.missingMetaFile); assertEquals(missingBlockFile, scanner.missingBlockFile); assertEquals(missingMemoryBlocks, scanner.missingMemoryBlocks); assertEquals(mismatchBlocks, scanner.mismatchBlocks); }
private void scan(long totalBlocks, int diffsize, long missingMetaFile, long missingBlockFile, long missingMemoryBlocks, long mismatchBlocks, long duplicateBlocks) throws IOException { scanner.reconcile(); assertTrue(scanner.diffs.containsKey(bpid)); LinkedList<DirectoryScanner.ScanInfo> diff = scanner.diffs.get(bpid); assertTrue(scanner.stats.containsKey(bpid)); DirectoryScanner.Stats stats = scanner.stats.get(bpid); assertEquals(diffsize, diff.size()); assertEquals(totalBlocks, stats.totalBlocks); assertEquals(missingMetaFile, stats.missingMetaFile); assertEquals(missingBlockFile, stats.missingBlockFile); assertEquals(missingMemoryBlocks, stats.missingMemoryBlocks); assertEquals(mismatchBlocks, stats.mismatchBlocks); assertEquals(duplicateBlocks, stats.duplicateBlocks); }
scanner.reconcile(); assertFalse(scanner.getRunStatus()); LOG.info("Scanner took " + (Time.monotonicNow() - nowMs.get())