Details
-
Bug
-
Status: Open
-
Low
-
Resolution: Unresolved
-
None
-
None
-
Low
Description
CommitLogReader. readCommitLogSegment is unwrapping IOExceptions wrapped as RuntimeExceptions using a try-with-resource block.
However, the resource specification block, RandomAccessReader reader = RandomAccessReader.open(file), could also throw such an exception, which is missed by the catch block and throws as a RuntimeException instead of an IOException.
One such example that I've seen is:
- RandomAccessReader.open (called in try-with-resource resource specification block initialization)
- ChannelProxy(File) constructor
- ChannelProxy.openChannel (wraps IOException as RuntimeException)
I don't know what the impact in Cassandra could be, I ran into this while processing CDC/commit logs for synchronization with another system.
Was using Cassandra 3.11.0