Daniel Wen created FLUME-2844:
---------------------------------
Summary: ChannelCounter of SpillableMemoryChannel doesn't register
actually.
Key: FLUME-2844
URL: https://issues.apache.org/jira/browse/FLUME-2844
Project: Flume
Issue Type: Bug
Components: Channel
Affects Versions: v1.6.0
Reporter: Daniel Wen
When using SpillableMemoryChannel, the values of all metrics of channel
component int monitoring system is zero.It's caused by a bug belowed.
SpillableMemoryChannel extends FileChannel,and each of them have a
ChannelCounter-Type field named of 'channelCounter'. FileChannel's
channelCounter filed is private, so it can not be override by
SpillableMemoryChannel. SpillableMemoryChannel's channelCounter is initialized
in configure method(Line 600 at SpillableMemoryChannel.java), then
super.configure() is called(Line 727 at SpillableMemoryChannel.java). So
FileChannel's channelCounter is also initialized(Line 267 at
SpillableMemoryChannel.java).
When SpillableMemoryChannel start(call start() method), it should and want to
register ChannelCounter. In start() method, SpillableMemoryChannel calls
super.start() (Line 768 at SpillableMemoryChannel.java), then FileChannel calls
channelCounter.start() to register channelCounter. But this channelCounter is
the one of FileChannle, not the one of SpillableMemoryChannel!
This bug results that when using SpillableMemoryChannel, the values of all
metrics of channel component is zero.
Maybe the qualifier of FileChannel's channelCounter filed should be changed to
prtected, and remove the channelCounter filed of SpillableMemoryChannel.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)