[
https://issues.apache.org/jira/browse/FLUME-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ferenc Szabo updated FLUME-2461:
--------------------------------
Fix Version/s: (was: 1.8.0)
1.9.0
> memoryChannel bytesRemaining counting error
> -------------------------------------------
>
> Key: FLUME-2461
> URL: https://issues.apache.org/jira/browse/FLUME-2461
> Project: Flume
> Issue Type: Bug
> Components: Sinks+Sources
> Affects Versions: 1.5.0.1
> Reporter: yangwei
> Priority: Minor
> Labels: patch, reviewboard-missing, unit-test-missing
> Fix For: 1.9.0
>
> Attachments: flume-2461-0.patch
>
>
> In doRollback function putByteCounter permits are released by bytesRemaining.
> This is wrong for the below cases:
> In the doCommit function:
> 1)
> if(!bytesRemaining.tryAcquire(putByteCounter, keepAlive,
> TimeUnit.SECONDS)) {
> throw new ChannelException("Cannot commit transaction. Heap space "
> +
> "limit of " + byteCapacity + "reached. Please increase heap
> space" +
> " allocated to the channel as the sinks may not be keeping up " +
> "with the sources");
> }
> 2)
> if(!queueRemaining.tryAcquire(-remainingChange, keepAlive,
> TimeUnit.SECONDS)) {
> bytesRemaining.release(putByteCounter);
> throw new ChannelFullException("Space for commit to queue couldn't
> be acquired." +
> " Sinks are likely not keeping up with sources, or the buffer
> size is too tight");
> }
> When they throw ChannelException, bytesRemaining should not release any
> permits.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)