public void run() { if (logger.isTraceEnabled()) logger.trace("Removing files for transaction log {}", data); if (!data.completed()) { // this happens if we forget to close a txn and the garbage collector closes it for us logger.error("Transaction log {} indicates txn was not completed, trying to abort it now", data); Throwable err = Throwables.perform((Throwable)null, data::abort); if (err != null) logger.error("Failed to abort transaction log {}", data, err); } Throwable err = data.removeUnfinishedLeftovers(null); if (err != null) { logger.info("Failed deleting files for transaction log {}, we'll retry after GC and on on server restart", data, err); failedDeletions.add(this); } else { if (logger.isTraceEnabled()) logger.trace("Closing transaction log {}", data); data.close(); } } }
public void run() { if (logger.isTraceEnabled()) logger.trace("Removing files for transaction log {}", data); if (!data.completed()) { // this happens if we forget to close a txn and the garbage collector closes it for us logger.error("Transaction log {} indicates txn was not completed, trying to abort it now", data); Throwable err = Throwables.perform((Throwable)null, data::abort); if (err != null) logger.error("Failed to abort transaction log {}", data, err); } Throwable err = data.removeUnfinishedLeftovers(null); if (err != null) { logger.info("Failed deleting files for transaction log {}, we'll retry after GC and on on server restart", data, err); failedDeletions.add(this); } else { if (logger.isTraceEnabled()) logger.trace("Closing transaction log {}", data); data.close(); } } }
public void run() { if (logger.isTraceEnabled()) logger.trace("Removing files for transaction log {}", data); if (!data.completed()) { // this happens if we forget to close a txn and the garbage collector closes it for us logger.error("Transaction log {} indicates txn was not completed, trying to abort it now", data); Throwable err = Throwables.perform((Throwable)null, data::abort); if (err != null) logger.error("Failed to abort transaction log {}", data, err); } Throwable err = data.removeUnfinishedLeftovers(null); if (err != null) { logger.info("Failed deleting files for transaction log {}, we'll retry after GC and on on server restart", data, err); failedDeletions.add(this); } else { if (logger.isTraceEnabled()) logger.trace("Closing transaction log {}", data); data.close(); } } }
public void run() { if (logger.isTraceEnabled()) logger.trace("Removing files for transaction log {}", data); if (!data.completed()) { // this happens if we forget to close a txn and the garbage collector closes it for us logger.error("Transaction log {} indicates txn was not completed, trying to abort it now", data); Throwable err = Throwables.perform((Throwable)null, data::abort); if (err != null) logger.error("Failed to abort transaction log {}", data, err); } Throwable err = data.removeUnfinishedLeftovers(null); if (err != null) { logger.info("Failed deleting files for transaction log {}, we'll retry after GC and on on server restart", data, err); failedDeletions.add(this); } else { if (logger.isTraceEnabled()) logger.trace("Closing transaction log {}", data); data.close(); } } }
static boolean removeUnfinishedLeftovers(Map.Entry<String, List<File>> entry) { try(LogFile txn = LogFile.make(entry.getKey(), entry.getValue())) { if (txn.verify()) { Throwable failure = txn.removeUnfinishedLeftovers(null); if (failure != null) { logger.error("Failed to remove unfinished transaction leftovers for transaction log {}", txn.toString(true), failure); return false; } return true; } else { logger.error("Unexpected disk state: failed to read transaction log {}", txn.toString(true)); return false; } } } }
static boolean removeUnfinishedLeftovers(Map.Entry<String, List<File>> entry) { try(LogFile txn = LogFile.make(entry.getKey(), entry.getValue())) { if (txn.verify()) { Throwable failure = txn.removeUnfinishedLeftovers(null); if (failure != null) { logger.error("Failed to remove unfinished transaction leftovers for transaction log {}", txn.toString(true), failure); return false; } return true; } else { logger.error("Unexpected disk state: failed to read transaction log {}", txn.toString(true)); return false; } } } }
static boolean removeUnfinishedLeftovers(Map.Entry<String, List<File>> entry) { try(LogFile txn = LogFile.make(entry.getKey(), entry.getValue())) { if (txn.verify()) { Throwable failure = txn.removeUnfinishedLeftovers(null); if (failure != null) { logger.error("Failed to remove unfinished transaction leftovers for transaction log {}", txn.toString(true), failure); return false; } return true; } else { logger.error("Unexpected disk state: failed to read transaction log {}", txn.toString(true)); return false; } } } }