[
https://issues.apache.org/jira/browse/CASSANDRA-9265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14694178#comment-14694178
]
Ariel Weisberg commented on CASSANDRA-9265:
-------------------------------------------
Coverity flagged this. I don't think it is an issue. It looks like
ChecksummedRandomAccessReader closes the channel proxy in its close method.
It's stored by the superclass constructor until then.
[~danchia] do you mind taking a look and confirming that I am right?
{code}
*** CID 1315737: Exceptional resource leaks (RESOURCE_LEAK)
/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java:
55 in
org.apache.cassandra.io.util.ChecksummedRandomAccessReader.open(java.io.File,
java.io.File)()
49 }
50
51 public static ChecksummedRandomAccessReader open(File file,
File crcFile) throws IOException
52 {
53 ChannelProxy channel = new ChannelProxy(file);
54 RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
>>> CID 1315737: Exceptional resource leaks (RESOURCE_LEAK)
>>> Variable "channel" going out of scope leaks the resource it refers to.
55 DataIntegrityMetadata.ChecksumValidator validator = new
DataIntegrityMetadata.ChecksumValidator(new Adler32(),
56
crcReader,
57
file.getPath());
58 return new ChecksummedRandomAccessReader(file, channel,
validator);
59 }
60
** CID 1315736: Null pointer dereferences (NULL_RETURNS)
/src/java/org/apache/cassandra/db/LegacyLayout.java: 710 in
org.apache.cassandra.db.LegacyLayout$4.<instance_field_initializations>()()
{code}
> Add checksum to saved cache files
> ---------------------------------
>
> Key: CASSANDRA-9265
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9265
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Ariel Weisberg
> Assignee: Daniel Chia
> Fix For: 2.2.1, 3.0 beta 1
>
> Attachments:
> 0001-Add-checksum-to-saved-cache-files-CASSANDRA-9265.patch,
> 0002-trunk-CASSANDRA-9265.patch
>
>
> Saved caches are not covered by a checksum. We should at least emit a
> checksum. My suggestion is a large checksum of the whole file (convenient
> offline validation), and then smaller per record checksums after each record
> is written (possibly a subset of the incrementally maintained larger
> checksum).
> I wouldn't go for anything fancy to try to recover from corruption since it
> is just a saved cache. If corruption is detected while reading I would just
> have it bail out. I would rather have less code to review and test in this
> instance.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)