[ 
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)

Reply via email to