[ https://issues.apache.org/jira/browse/FLUME-2461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lior Zeno updated FLUME-2461: ----------------------------- Fix Version/s: (was: v1.5.0.1) v1.7.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: v1.5.0.1 > Reporter: yangwei > Priority: Minor > Labels: patch > Fix For: v1.7.0 > > Attachments: FLUME-2461.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.3.4#6332)