Updated Branches:
  refs/heads/trunk 74d087d54 -> a76beeb61

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/a76beeb6
Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/a76beeb6
Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/a76beeb6

Branch: refs/heads/trunk
Commit: a76beeb61700f08bafeb625040379ebd56e000a6
Parents: 74d087d
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:29 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/a76beeb6/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