[
https://issues.apache.org/jira/browse/FLUME-1481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brock Noland updated FLUME-1481:
--------------------------------
Fix Version/s: (was: v1.3.0)
v1.4.0
> Custom component may not support dynamic configuration
> ------------------------------------------------------
>
> Key: FLUME-1481
> URL: https://issues.apache.org/jira/browse/FLUME-1481
> Project: Flume
> Issue Type: Bug
> Components: Channel, Sinks+Sources
> Affects Versions: v1.2.0
> Reporter: Denny Ye
> Fix For: v1.4.0
>
>
> Flume NG provides more flexible extension at primary component. It's very
> useful for users. Each custom component should implement LifecycleAware
> interface in different ways.
> If the startup thread blocked at 'start()' method, the component will be runs
> normally. Meanwhile, dynamic configuration function will be disable with
> unreachable 'synchronized' lock.
> Example in my environment. Others also may meet this problem with custom
> component.
> {quote}
> "lifecycleSupervisor-1-3" prio=10 tid=0x000000005d562000 nid=0x2a53 in
> Object.wait() [0x0000000042a6b000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00002aaacc740d30> (a
> org.apache.thrift.server.TNonblockingServer$SelectThread)
> at java.lang.Thread.join(Thread.java:1143)
> - locked <0x00002aaacc740d30> (a
> org.apache.thrift.server.TNonblockingServer$SelectThread)
> at java.lang.Thread.join(Thread.java:1196)
> at
> org.apache.thrift.server.TNonblockingServer.joinSelector(TNonblockingServer.java:170)
> at
> org.apache.thrift.server.TNonblockingServer.serve(TNonblockingServer.java:114)
> at org.apache.flume.source.scribe.ScribeSource.start(ScribeSource.java:88)
> at
> org.apache.flume.source.EventDrivenSourceRunner.start(EventDrivenSourceRunner.java:44)
> at
> org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:237)
> - locked {color:red}<0x00002aaacc755d78>{color} (a
> org.apache.flume.source.EventDrivenSourceRunner)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>
>
> "conf-file-poller-0" prio=10 tid=0x000000005d4de000 nid=0x2a50 waiting for
> monitor entry [0x0000000042869000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at
> org.apache.flume.lifecycle.LifecycleSupervisor.unsupervise(LifecycleSupervisor.java:153)
> - waiting to lock {color:red}<0x00002aaacc755d78>{color} (a
> org.apache.flume.source.EventDrivenSourceRunner)
> - locked <0x00002aaacc755c30> (a
> org.apache.flume.lifecycle.LifecycleSupervisor)
> at
> org.apache.flume.node.nodemanager.DefaultLogicalNodeManager.stopAllComponents(DefaultLogicalNodeManager.java:73)
> at
> org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.load(PropertiesFileConfigurationProvider.java:219)
> at
> org.apache.flume.conf.file.AbstractFileConfigurationProvider.doLoad(AbstractFileConfigurationProvider.java:123)
> - locked <0x00002aaacc75bfd0> (a
> org.apache.flume.conf.properties.PropertiesFileConfigurationProvider)
> at
> org.apache.flume.conf.file.AbstractFileConfigurationProvider.access$300(AbstractFileConfigurationProvider.java:38)
> at
> org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:202)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> {quote}
> The former doesn't release object lock and the follower cann't obtains
> specified object lock. There are staying lock starvation. Dynamic
> configuration function cannot apply for this component.
> This issue have happening only on case : component initialization thread was
> blocked at 'start' method.
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira