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/04 03:25:20 UTC
[jira] [Comment Edited] (FLUME-2965) race condition in
SpillableMemoryChannel log print
[ https://issues.apache.org/jira/browse/FLUME-2965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15407049#comment-15407049 ]
liqiaoping edited comment on FLUME-2965 at 8/4/16 3:24 AM:
-----------------------------------------------------------
Hi Denes and Roshan, Sorry that I am glad to submit the patch to review but I just don't know how to do it...
Is there some link or tutorial for this ?
was (Author: lqp276):
Hi Denes and Roshan, Sorry that I am glad to submit the patch to review but I just don't know how to do it...
Is there some link or tutorial for this ?
> race condition in SpillableMemoryChannel log print
> --------------------------------------------------
>
> Key: FLUME-2965
> URL: https://issues.apache.org/jira/browse/FLUME-2965
> Project: Flume
> Issue Type: Bug
> Components: Channel
> Affects Versions: v1.7.0
> Reporter: liqiaoping
> Priority: Minor
> Attachments: SpillableMemoryChannel.java
>
>
> 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)