For an invalid snapshot file(less than 10bytes size) RandomAccessFile stream is 
leaking.
----------------------------------------------------------------------------------------

                 Key: ZOOKEEPER-1189
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1189
             Project: ZooKeeper
          Issue Type: Bug
          Components: server
    Affects Versions: 3.3.3
            Reporter: Rakesh R
             Fix For: 3.3.4


When loading the snapshot, ZooKeeper will consider only the 'snapshots with 
atleast 10 bytes size'. Otherwsie it will ignore and just return without 
closing the RandomAccessFile.

{noformat}
Util.isValidSnapshot() having the following logic. 
       // Check for a valid snapshot
        RandomAccessFile raf = new RandomAccessFile(f, "r");
        // including the header and the last / bytes
        // the snapshot should be atleast 10 bytes
        if (raf.length() < 10) {
            return false;
        }
{noformat}

Since the snapshot file validation logic is outside try block, it won't go to 
the finally block and will be leaked.

Suggestion: Move the validation logic to the try/catch block.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to