Updated Branches:
  refs/heads/flume-1.3.0 1039b4c8b -> cdddf5aa8

FLUME-1616: FileChannel will lose data in when rollback fails with IOException

(Hari Shreedharan via Brock Noland)


Project: http://git-wip-us.apache.org/repos/asf/flume/repo
Commit: http://git-wip-us.apache.org/repos/asf/flume/commit/cdddf5aa
Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/cdddf5aa
Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/cdddf5aa

Branch: refs/heads/flume-1.3.0
Commit: cdddf5aa8f1ec05ddab2aaa3d0d393b81bdcd844
Parents: 1039b4c
Author: Brock Noland <[email protected]>
Authored: Thu Sep 27 17:14:29 2012 -0500
Committer: Brock Noland <[email protected]>
Committed: Thu Sep 27 17:14:45 2012 -0500

----------------------------------------------------------------------
 .../org/apache/flume/channel/file/FileChannel.java |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flume/blob/cdddf5aa/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
----------------------------------------------------------------------
diff --git 
a/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
 
b/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
index bdc9f04..6680a2c 100644
--- 
a/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
+++ 
b/flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
@@ -527,7 +527,6 @@ public class FileChannel extends BasicChannelSemantics {
               + "log. Try increasing the log write timeout value. " +
               channelNameDescriptor);
         }
-        log.rollback(transactionID);
         if(takes > 0) {
           Preconditions.checkState(puts == 0, "nonzero puts and takes "
               + channelNameDescriptor);
@@ -543,6 +542,7 @@ public class FileChannel extends BasicChannelSemantics {
         takeList.clear();
         queue.completeTransaction(transactionID);
         channelCounter.setChannelSize(queue.getSize());
+        log.rollback(transactionID);
       } catch (IOException e) {
         throw new ChannelException("Commit failed due to IO error "
             + channelNameDescriptor, e);

Reply via email to