[
https://issues.apache.org/jira/browse/FLUME-1606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hari Shreedharan updated FLUME-1606:
------------------------------------
Description: doRollback() calls queue.completeTransaction() only for take
transactions. It should also be called for put transactions. A side effect of
this is that the channel ends up thinking the data file which contains the
rolled back transaction still has pending events, and will not delete any files
which have ids after that one. Restarting the channel will cause files to be
deleted if their ref count is zero, even if they are in inflight puts list. The
reason the replay fixes this is that the inflight puts are not inserted into
the queue because a commit for the puts is never seen. So this issue can be
fixed by simply restarting the agent. (was: doRollback() calls
queue.completeTransaction() only for take transactions. It should also be
called for put transactions. A side effect of this is that the channel ends up
thinking the data file which contains the rolled back transaction still has
pending events, and will not delete any files which have ids after that one.)
> Rollbacks of Put transactions does not clear the transaction from inflight
> puts.
> --------------------------------------------------------------------------------
>
> Key: FLUME-1606
> URL: https://issues.apache.org/jira/browse/FLUME-1606
> Project: Flume
> Issue Type: Bug
> Affects Versions: v1.3.0
> Reporter: Hari Shreedharan
> Assignee: Hari Shreedharan
> Fix For: v1.3.0
>
> Attachments: FLUME-1606.patch
>
>
> doRollback() calls queue.completeTransaction() only for take transactions. It
> should also be called for put transactions. A side effect of this is that the
> channel ends up thinking the data file which contains the rolled back
> transaction still has pending events, and will not delete any files which
> have ids after that one. Restarting the channel will cause files to be
> deleted if their ref count is zero, even if they are in inflight puts list.
> The reason the replay fixes this is that the inflight puts are not inserted
> into the queue because a commit for the puts is never seen. So this issue can
> be fixed by simply restarting the agent.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira