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)

Reply via email to