zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From maoling <...@git.apache.org>
Subject [GitHub] zookeeper pull request #356: ZOOKEEPER-2572: Fix potential resource leak in ...
Date Tue, 05 Sep 2017 14:45:33 GMT
Github user maoling commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/356#discussion_r137008765
  
    --- Diff: src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java ---
    @@ -399,18 +403,20 @@ public boolean truncate(long zxid) throws IOException {
                 }
                 long pos = input.getPosition();
                 // now, truncate at the current position
    -            RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
    +            raf = new RandomAccessFile(itr.logFile, "rw");
                 raf.setLength(pos);
    -            raf.close();
                 while(itr.goToNextLog()) {
    -                if (!itr.logFile.delete()) {
    -                    LOG.warn("Unable to truncate {}", itr.logFile);
    +                try {
    +                    Files.delete(itr.logFile.toPath());
    +                } catch (NoSuchFileException e) {
                     }
                 }
    --- End diff --
    
    - A option:  remain the origin code in the master branch unchanged.just log the `itr.logFile`
and `zxid`
    - B option:  choose `Files.delete`  because it throws `exception` rather than `itr.logFile.delete()`
returns `boolean` ,**dont't catch it** and it will be caught in `Learner.java#syncWithLeader`
and log it with `zxid`
    - am I right?


---

Mime
View raw message