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);
