Benjamin Lerer created CASSANDRA-7709:
-----------------------------------------

             Summary: sstable2json has resource leaks
                 Key: CASSANDRA-7709
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7709
             Project: Cassandra
          Issue Type: Bug
          Components: Tools
            Reporter: Benjamin Lerer
            Assignee: Benjamin Lerer
            Priority: Minor
             Fix For: 2.0.10


Coverity found 3 resource leak within  SSTable2JsonExporter:
** CID 71971:  Resource leak  (RESOURCE_LEAK)
/src/java/org/apache/cassandra/tools/SSTableExport.java: 300 in
org.apache.cassandra.tools.SSTableExport.export(org.apache.cassandra.io.sstable.Descriptor,
java.io.PrintStream, java.util.Collection, java.lang.String[],
org.apache.cassandra.config.CFMetaData)()

** CID 71972:  Resource leak on an exceptional path  (RESOURCE_LEAK)
/src/java/org/apache/cassandra/tools/SSTableExport.java: 332 in
org.apache.cassandra.tools.SSTableExport.export(org.apache.cassandra.io.sstable.SSTableReader,
java.io.PrintStream, java.lang.String[],
org.apache.cassandra.config.CFMetaData)()

** CID 71975:  Resource leak on an exceptional path  (RESOURCE_LEAK)
/src/java/org/apache/cassandra/tools/SSTableExport.java: 236 in
org.apache.cassandra.tools.SSTableExport.enumeratekeys(org.apache.cassandra.io.sstable.Descriptor,
java.io.PrintStream, org.apache.cassandra.config.CFMetaData)()


________________________________________________________________________________________________________
*** CID 71971:  Resource leak  (RESOURCE_LEAK)
/src/java/org/apache/cassandra/tools/SSTableExport.java: 300 in
org.apache.cassandra.tools.SSTableExport.export(org.apache.cassandra.io.sstable.Descriptor,
java.io.PrintStream, java.util.Collection, java.lang.String[],
org.apache.cassandra.config.CFMetaData)()
294                 i++;
295                 serializeRow(deletionInfo, atomIterator,
sstable.metadata, decoratedKey, outs);
296             }
297
298             outs.println("\n]");
299             outs.flush();
>>>     CID 71971:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "dfile" going out of scope leaks the resource it refers to.
300         }
301
302         // This is necessary to accommodate the test suite since
you cannot open a Reader more
303         // than once from within the same process.
304         static void export(SSTableReader reader, PrintStream outs,
String[] excludes, CFMetaData metadata) throws IOException
305         {

________________________________________________________________________________________________________
*** CID 71972:  Resource leak on an exceptional path  (RESOURCE_LEAK)
/src/java/org/apache/cassandra/tools/SSTableExport.java: 332 in
org.apache.cassandra.tools.SSTableExport.export(org.apache.cassandra.io.sstable.SSTableReader,
java.io.PrintStream, java.lang.String[],
org.apache.cassandra.config.CFMetaData)()
326                 if (excludeSet.contains(currentKey))
327                     continue;
328                 else if (i != 0)
329                     outs.println(",");
330
331                 serializeRow(row, row.getKey(), outs);
>>>     CID 71972:  Resource leak on an exceptional path  (RESOURCE_LEAK)
>>>     Variable "scanner" going out of scope leaks the resource it refers to.
332                 checkStream(outs);
333
334                 i++;
335             }
336
337             outs.println("\n]");

________________________________________________________________________________________________________
*** CID 71975:  Resource leak on an exceptional path  (RESOURCE_LEAK)
/src/java/org/apache/cassandra/tools/SSTableExport.java: 236 in
org.apache.cassandra.tools.SSTableExport.enumeratekeys(org.apache.cassandra.io.sstable.Descriptor,
java.io.PrintStream, org.apache.cassandra.config.CFMetaData)()
230             while (iter.hasNext())
231             {
232                 DecoratedKey key = iter.next();
233
234                 // validate order of the keys in the sstable
235                 if (lastKey != null && lastKey.compareTo(key) > 0)
>>>     CID 71975:  Resource leak on an exceptional path  (RESOURCE_LEAK)
>>>     Variable "iter" going out of scope leaks the resource it refers to.
236                     throw new IOException("Key out of order! " +
lastKey + " > " + key);
237                 lastKey = key;
238
239
outs.println(metadata.getKeyValidator().getString(key.getKey()));
240                 checkStream(outs); // flushes
241             }





--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to