[
https://issues.apache.org/jira/browse/FLUME-1392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13421159#comment-13421159
]
Will McQueen commented on FLUME-1392:
-------------------------------------
Test 1
======
Tested with this config file:
agent.channels = c1
agent.sources = r1
agent.sinks = k1
agent.channels.c1.type = MEMORY
agent.channels.c2.type = MEMORY
agent.sources.r1.channels = c2
agent.sources.r1.type = NETCAT
agent.sources.r1.bind = 0.0.0.0
agent.sources.r1.port = 41414
agent.sinks.k1.channel = c1
agent.sinks.k1.type = LOGGER
...and got this:
[will@will-laptop apache-flume-1.3.0-SNAPSHOT]$ bin/flume-ng agent -c conf -f
conf/flume.conf -n agent
+ exec /usr/java/latest/bin/java -Xmx20m -cp
'/home/will/git/apache/apache-flume-ng/apache-flume-1.3.0-SNAPSHOT/conf:/home/will/git/apache/apache-flume-ng/apache-flume-1.3.0-SNAPSHOT/lib/*'
-Djava.library.path= org.apache.flume.node.Application -f conf/flume.conf -n
agent
2012-07-23 21:10:14,544 (main) [INFO -
org.apache.flume.lifecycle.LifecycleSupervisor.start(LifecycleSupervisor.java:67)]
Starting lifecycle supervisor 1
2012-07-23 21:10:14,546 (main) [INFO -
org.apache.flume.node.FlumeNode.start(FlumeNode.java:54)] Flume node starting -
agent
2012-07-23 21:10:14,548 (lifecycleSupervisor-1-0) [INFO -
org.apache.flume.node.nodemanager.DefaultLogicalNodeManager.start(DefaultLogicalNodeManager.java:203)]
Node manager starting
2012-07-23 21:10:14,549 (lifecycleSupervisor-1-1) [INFO -
org.apache.flume.conf.file.AbstractFileConfigurationProvider.start(AbstractFileConfigurationProvider.java:67)]
Configuration provider starting
2012-07-23 21:10:14,551 (lifecycleSupervisor-1-0) [INFO -
org.apache.flume.lifecycle.LifecycleSupervisor.start(LifecycleSupervisor.java:67)]
Starting lifecycle supervisor 10
2012-07-23 21:10:14,552 (lifecycleSupervisor-1-0) [DEBUG -
org.apache.flume.node.nodemanager.DefaultLogicalNodeManager.start(DefaultLogicalNodeManager.java:207)]
Node manager started
2012-07-23 21:10:14,553 (lifecycleSupervisor-1-1) [DEBUG -
org.apache.flume.conf.file.AbstractFileConfigurationProvider.start(AbstractFileConfigurationProvider.java:86)]
Configuration provider started
2012-07-23 21:10:14,553 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:188)]
Checking file:conf/flume.conf for changes
2012-07-23 21:10:14,553 (conf-file-poller-0) [INFO -
org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:195)]
Reloading configuration file:conf/flume.conf
2012-07-23 21:10:14,557 (conf-file-poller-0) [INFO -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.addProperty(FlumeConfiguration.java:904)]
Added sinks: k1 Agent: agent
2012-07-23 21:10:14,557 (conf-file-poller-0) [INFO -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.addProperty(FlumeConfiguration.java:990)]
Processing:k1
2012-07-23 21:10:14,557 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.addProperty(FlumeConfiguration.java:994)]
Created context for k1: type
2012-07-23 21:10:14,557 (conf-file-poller-0) [INFO -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.addProperty(FlumeConfiguration.java:990)]
Processing:k1
2012-07-23 21:10:14,557 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.isValid(FlumeConfiguration.java:295)]
Starting validation of configuration for agent: agent, initial-configuration:
AgentConfiguration[agent]
SOURCES: {r1={ parameters:{port=41414, channels=c2, type=NETCAT, bind=0.0.0.0}
}}
CHANNELS: {c1={ parameters:{type=MEMORY} }, c2={ parameters:{type=MEMORY} }}
SINKS: {k1={ parameters:{type=LOGGER, channel=c1} }}
2012-07-23 21:10:14,562 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.validateChannels(FlumeConfiguration.java:450)]
Created channel c1
2012-07-23 21:10:14,574 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.validateSinks(FlumeConfiguration.java:651)]
Creating sink: k1 using LOGGER
2012-07-23 21:10:14,577 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.isValid(FlumeConfiguration.java:353)]
Post validation configuration for agent
AgentConfiguration created without Configuration stubs for which only basic
syntactical validation was performed[agent]
SOURCES: {r1={ parameters:{port=41414, channels=null, type=NETCAT,
bind=0.0.0.0} }}
CHANNELS: {c1={ parameters:{type=MEMORY} }}
AgentConfiguration created with Configuration stubs for which full validation
was performed[agent]
SINKS: {k1=ComponentConfiguration[k1]
CONFIG:
CHANNEL:c1
}
2012-07-23 21:10:14,577 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration.validateConfiguration(FlumeConfiguration.java:117)]
Channels:c1
2012-07-23 21:10:14,578 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration.validateConfiguration(FlumeConfiguration.java:118)]
Sinks k1
2012-07-23 21:10:14,578 (conf-file-poller-0) [DEBUG -
org.apache.flume.conf.FlumeConfiguration.validateConfiguration(FlumeConfiguration.java:119)]
Sources r1
2012-07-23 21:10:14,578 (conf-file-poller-0) [INFO -
org.apache.flume.conf.FlumeConfiguration.validateConfiguration(FlumeConfiguration.java:122)]
Post-validation flume configuration contains configuration for agents: [agent]
2012-07-23 21:10:14,578 (conf-file-poller-0) [INFO -
org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.loadChannels(PropertiesFileConfigurationProvider.java:249)]
Creating channels
2012-07-23 21:10:14,578 (conf-file-poller-0) [DEBUG -
org.apache.flume.channel.DefaultChannelFactory.create(DefaultChannelFactory.java:68)]
Creating instance of channel c1 type MEMORY
2012-07-23 21:10:14,616 (conf-file-poller-0) [INFO -
org.apache.flume.instrumentation.MonitoredCounterGroup.<init>(MonitoredCounterGroup.java:68)]
Monitoried counter group for type: CHANNEL, name: c1, registered successfully.
2012-07-23 21:10:14,616 (conf-file-poller-0) [INFO -
org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.loadChannels(PropertiesFileConfigurationProvider.java:273)]
created channel c1
2012-07-23 21:10:14,616 (conf-file-poller-0) [DEBUG -
org.apache.flume.source.DefaultSourceFactory.create(DefaultSourceFactory.java:74)]
Creating instance of source r1, type NETCAT
2012-07-23 21:10:14,619 (conf-file-poller-0) [ERROR -
org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:204)]
Failed to load configuration data. Exception follows.
java.lang.NullPointerException: null value
at
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)
at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:139)
at com.google.common.collect.ImmutableMap.copyOf(ImmutableMap.java:263)
at org.apache.flume.Context.getParameters(Context.java:53)
at
org.apache.flume.conf.Configurables.ensureRequiredNonNull(Configurables.java:58)
at org.apache.flume.source.NetcatSource.configure(NetcatSource.java:135)
at org.apache.flume.conf.Configurables.configure(Configurables.java:41)
at
org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.loadSources(PropertiesFileConfigurationProvider.java:323)
at
org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.load(PropertiesFileConfigurationProvider.java:222)
at
org.apache.flume.conf.file.AbstractFileConfigurationProvider.doLoad(AbstractFileConfigurationProvider.java:123)
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)
at
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
The config failed, as desired. But 1 nit... could you please include the
instance name in the error message (eg, c2 in this case) because seeing
something like:
java.lang.NullPointerException: null value for c2
...would be more helpful than just:
java.lang.NullPointerException: null value
> Inactive channels get added to source channels list causing NPE
> ---------------------------------------------------------------
>
> Key: FLUME-1392
> URL: https://issues.apache.org/jira/browse/FLUME-1392
> Project: Flume
> Issue Type: Bug
> Components: Sinks+Sources
> Affects Versions: v1.2.0
> Reporter: Hari Shreedharan
> Assignee: Hari Shreedharan
> Fix For: v1.3.0
>
> Attachments: FLUME-1392.patch
>
>
> Channels are not created, hence the references are null, causing NPE.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira