Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13895

IOException unwrapping in CommitLogReader. readCommitLogSegment misses exceptions in resource creation block

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Low
    • Resolution: Unresolved
    • None
    • Local/Commit Log
    • 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

      Attachments

        Activity

          People

            Unassigned Unassigned
            cgrigoroscuta Catalin Grigoroscuta
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: