You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "Denes Arvay (JIRA)" <ji...@apache.org> on 2016/08/03 17:58:20 UTC

[jira] [Commented] (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=15406313#comment-15406313 ] 

Denes Arvay commented on FLUME-2965:
------------------------------------

Hi [~lqp276], thank you for your bug report and fix. Could you please submit it to the Review board at https://reviews.apache.org? If you need any assistance on this, let me know.
Please also add some unit tests for your fix, if it's possible. Thanks.

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