@VisibleForTesting public static boolean handleCommitError(String message, Throwable t) { JVMStabilityInspector.inspectCommitLogThrowable(t); switch (DatabaseDescriptor.getCommitFailurePolicy()) { // Needed here for unit tests to not fail on default assertion case die: case stop: StorageService.instance.stopTransports(); //$FALL-THROUGH$ case stop_commit: logger.error(String.format("%s. Commit disk failure policy is %s; terminating thread", message, DatabaseDescriptor.getCommitFailurePolicy()), t); return false; case ignore: logger.error(message, t); return true; default: throw new AssertionError(DatabaseDescriptor.getCommitFailurePolicy()); } }
@VisibleForTesting public static boolean handleCommitError(String message, Throwable t) { JVMStabilityInspector.inspectCommitLogThrowable(t); switch (DatabaseDescriptor.getCommitFailurePolicy()) { // Needed here for unit tests to not fail on default assertion case die: case stop: StorageService.instance.stopTransports(); //$FALL-THROUGH$ case stop_commit: logger.error(String.format("%s. Commit disk failure policy is %s; terminating thread", message, DatabaseDescriptor.getCommitFailurePolicy()), t); return false; case ignore: logger.error(message, t); return true; default: throw new AssertionError(DatabaseDescriptor.getCommitFailurePolicy()); } }
@VisibleForTesting public static boolean handleCommitError(String message, Throwable t) { JVMStabilityInspector.inspectCommitLogThrowable(t); switch (DatabaseDescriptor.getCommitFailurePolicy()) { // Needed here for unit tests to not fail on default assertion case die: case stop: StorageService.instance.stopTransports(); //$FALL-THROUGH$ case stop_commit: logger.error(String.format("%s. Commit disk failure policy is %s; terminating thread", message, DatabaseDescriptor.getCommitFailurePolicy()), t); return false; case ignore: logger.error(message, t); return true; default: throw new AssertionError(DatabaseDescriptor.getCommitFailurePolicy()); } }
@VisibleForTesting public static boolean handleCommitError(String message, Throwable t) { JVMStabilityInspector.inspectCommitLogThrowable(t); switch (DatabaseDescriptor.getCommitFailurePolicy()) { // Needed here for unit tests to not fail on default assertion case die: case stop: StorageService.instance.stopTransports(); case stop_commit: logger.error(String.format("%s. Commit disk failure policy is %s; terminating thread", message, DatabaseDescriptor.getCommitFailurePolicy()), t); return false; case ignore: logger.error(message, t); return true; default: throw new AssertionError(DatabaseDescriptor.getCommitFailurePolicy()); } }
@Override public void handleCorruptSSTable(CorruptSSTableException e) { if (!StorageService.instance.isDaemonSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: StorageService.instance.stopTransports(); break; } }
@Override public void handleCorruptSSTable(CorruptSSTableException e) { if (!StorageService.instance.isDaemonSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: StorageService.instance.stopTransports(); break; } }
@Override public void handleCorruptSSTable(CorruptSSTableException e) { if (!StorageService.instance.isDaemonSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: StorageService.instance.stopTransports(); break; } }
@Override public void handleCorruptSSTable(CorruptSSTableException e) { if (!StorageService.instance.isSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: StorageService.instance.stopTransports(); break; } }
@Override public void handleFSError(FSError e) { if (!StorageService.instance.isDaemonSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: case stop: StorageService.instance.stopTransports(); break; case best_effort: // for both read and write errors mark the path as unwritable. BlacklistedDirectories.maybeMarkUnwritable(e.path); if (e instanceof FSReadError) { File directory = BlacklistedDirectories.maybeMarkUnreadable(e.path); if (directory != null) Keyspace.removeUnreadableSSTables(directory); } break; case ignore: // already logged, so left nothing to do break; default: throw new IllegalStateException(); } }
@Override public void handleFSError(FSError e) { if (!StorageService.instance.isDaemonSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: case stop: StorageService.instance.stopTransports(); break; case best_effort: // for both read and write errors mark the path as unwritable. BlacklistedDirectories.maybeMarkUnwritable(e.path); if (e instanceof FSReadError) { File directory = BlacklistedDirectories.maybeMarkUnreadable(e.path); if (directory != null) Keyspace.removeUnreadableSSTables(directory); } break; case ignore: // already logged, so left nothing to do break; default: throw new IllegalStateException(); } }
@Override public void handleFSError(FSError e) { if (!StorageService.instance.isSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: case stop: StorageService.instance.stopTransports(); break; case best_effort: // for both read and write errors mark the path as unwritable. BlacklistedDirectories.maybeMarkUnwritable(e.path); if (e instanceof FSReadError) { File directory = BlacklistedDirectories.maybeMarkUnreadable(e.path); if (directory != null) Keyspace.removeUnreadableSSTables(directory); } break; case ignore: // already logged, so left nothing to do break; default: throw new IllegalStateException(); } }
@Override public void handleFSError(FSError e) { if (!StorageService.instance.isDaemonSetupCompleted()) handleStartupFSError(e); JVMStabilityInspector.inspectThrowable(e); switch (DatabaseDescriptor.getDiskFailurePolicy()) { case stop_paranoid: case stop: StorageService.instance.stopTransports(); break; case best_effort: // for both read and write errors mark the path as unwritable. BlacklistedDirectories.maybeMarkUnwritable(e.path); if (e instanceof FSReadError) { File directory = BlacklistedDirectories.maybeMarkUnreadable(e.path); if (directory != null) Keyspace.removeUnreadableSSTables(directory); } break; case ignore: // already logged, so left nothing to do break; default: throw new IllegalStateException(); } }