diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java index d47fbaea544e..f0d15c6ae271 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java @@ -17,6 +17,7 @@ */ package org.apache.cassandra.db.commitlog; +import java.io.IOError; import java.nio.file.Files; import java.nio.file.Path; import java.io.*; @@ -119,6 +120,19 @@ static List filterCommitLogFiles(File[] toFilter) // let recover deal with it filtered.add(file); } + catch (IOError e) + { + // Only handle file-not-found errors gracefully; let other IOErrors propagate + // as they may indicate corruption or serious I/O issues + if (e.getCause() instanceof java.nio.file.NoSuchFileException) + { + filtered.add(file); + } + else + { + throw e; + } + } } return filtered;