You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "liqiaoping (JIRA)" <ji...@apache.org> on 2016/08/03 07:47:20 UTC
[jira] [Created] (FLUME-2964) race condition in
SpillableMemoryChannel log print
liqiaoping created FLUME-2964:
---------------------------------
Summary: race condition in SpillableMemoryChannel log print
Key: FLUME-2964
URL: https://issues.apache.org/jira/browse/FLUME-2964
Project: Flume
Issue Type: Bug
Components: Channel
Affects Versions: v1.7.0
Reporter: liqiaoping
Priority: Minor
use SpillableMemoryChannel with http blob handler, and send many request concurrently, As the jetty has a threadpool to handle incoming request, the commit to SpillableMemoryChannel will be concurrent.
the Following code :
@Override
protected void doCommit() throws InterruptedException {
if (putCalled) {
putCommit();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Put Committed. Drain Order Queue state : "
+ drainOrder.dump());
}
in method - >drainOrder.dump() will iterate its internal queue, in the meantime, has changed by other thread, thus throw a concurrent modification exception. thus will result the channel processor try to rollback, but actually the transaction has commit succefully.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)