You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "yangwei (JIRA)" <ji...@apache.org> on 2014/09/12 03:43:33 UTC
[jira] [Created] (FLUME-2461) memoryChannel bytesRemaining counting
error
yangwei created FLUME-2461:
------------------------------
Summary: 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: v1.5.0.1
Reporter: yangwei
Priority: Minor
Fix For: v1.5.0.1
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.3.4#6332)