You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "jweinste (JIRA)" <ji...@apache.org> on 2015/12/21 17:18:46 UTC
[jira] [Created] (FLUME-2862) KafkaChannel rollback can reorder
events
jweinste created FLUME-2862:
-------------------------------
Summary: KafkaChannel rollback can reorder events
Key: FLUME-2862
URL: https://issues.apache.org/jira/browse/FLUME-2862
Project: Flume
Issue Type: Bug
Components: Channel
Reporter: jweinste
Failed events can be appended to the end of queue during rollback, thus reordering the events seen.
doTake()...
Event e;
if (!consumerAndIter.get().failedEvents.isEmpty()) {
e = consumerAndIter.get().failedEvents.removeFirst();
}
...
eventTaken = true;
events.get().add(e);
doRollback()
else {
counter.addToRollbackCounter(Long.valueOf(events.get().size()));
consumerAndIter.get().failedEvents.addAll(events.get());
events.get().clear();
}
Failed events (case of failedEvents.removeFirst()) should be added to the front of queue along lines of:
addAll(0, events.get());
While *new* events should be added to end (--not sure this combo exists--)
Otherwise
failedEvents = [0,1,2,3,4]
doTake()
failedEvents = [1,2,3,4]
doRollback()
failedEvents = [1,2,3,4,0]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)