Details
Description
Entering a config on /flumeconfig.jsp with no node selected, but a valid source and sink produces this exception in the Master:
10/07/20 17:30:16 ERROR master.CommandManager: Unexpected exception during cmdid:3 config [null, collectorSource(35853), collectorSink("file:///pegs/flume/%Y/%m/%d/%
{host}", "rvngistats-")]] : null
java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:75)
at com.cloudera.flume.master.failover.FailoverConfigurationManager.translateSink(FailoverConfigurationManager.java:103)
at com.cloudera.flume.master.TranslatingConfigurationManager.setConfig(TranslatingConfigurationManager.java:105)
at com.cloudera.flume.master.flows.FlowConfigManager.setConfig(FlowConfigManager.java:262)
at com.cloudera.flume.master.TranslatingConfigurationManager.setConfig(TranslatingConfigurationManager.java:98)
at com.cloudera.flume.master.ConfigCommand$1.exec(ConfigCommand.java:87)
at com.cloudera.flume.master.CommandManager.exec(CommandManager.java:255)
at com.cloudera.flume.master.CommandManager.handleCommand(CommandManager.java:194)
at com.cloudera.flume.master.CommandManager$ExecThread.run(CommandManager.java:225)
At that point, /flumemaster.jsp fails with this NPE:
10/07/20 17:30:25 WARN /: /flumemaster.jsp:
java.lang.NullPointerException
at java.lang.String.compareTo(String.java:1167)
at java.lang.String.compareTo(String.java:92)
at java.util.TreeMap.put(TreeMap.java:545)
at java.util.AbstractMap.putAll(AbstractMap.java:256)
at java.util.TreeMap.putAll(TreeMap.java:304)
at java.util.TreeMap.<init>(TreeMap.java:162)
at com.cloudera.flume.master.TranslatingConfigurationManager.getReport(TranslatingConfigurationManager.java:154)
at com.cloudera.flume.master.FlumeMaster.reportHtml(FlumeMaster.java:327)
at org.apache.jsp.flumemaster_jsp._jspService(flumemaster_jsp.java:68)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:475)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
at org.mortbay.http.HttpServer.service(HttpServer.java:954)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
And shell 'getconfigs' fails like this:
[flume localhost:35873:45678] getconfigs
757017 [pool-2-thread-1] ERROR org.apache.thrift.server.TSaneThreadPoolServer - Error occDisconnected!urred
during 10/07/20 17:35:36 ERROR util.FlumeShell: getconfigs failed due to transport error
proc[flume (disconnected)] essing of message.
java.lang.NullPointerException
at org.apache.thrift.protocol.TBinaryProtocol.writeString(TBinaryProtocol.java:174)
at com.cloudera.flume.conf.thrift.FlumeMasterAdminServer$getConfigs_result.write(FlumeMasterAdminServer.java:3066)
at com.cloudera.flume.conf.thrift.FlumeMasterAdminServer$Processor$getConfigs.process(FlumeMasterAdminServer.java:382)
at com.cloudera.flume.conf.thrift.FlumeMasterAdminServer$Processor.process(FlumeMasterAdminServer.java:302)
at org.apache.thrift.server.TSaneThreadPoolServer$WorkerProcess.run(TSaneThreadPoolServer.java:280)
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:619)
[flume (disconnected)] connect localhost
Using default admin port: 35873
Using default report port: 45678
Connecting to Flume master localhost:35873:45678...
[flume localhost:35873:45678] getconfigs
799212 [pool-2-thread-1] ERROR org.apache.thrift.server.TSaneThrDisconnected!ea
dPoolServer - 10/07/20 17:36:18 ERROR util.FlumeShell: getconfigs failed due to transport error
Error [flume (disconnected)] occurred during processing of message.
java.lang.NullPointerException
at org.apache.thrift.protocol.TBinaryProtocol.writeString(TBinaryProtocol.java:174)
at com.cloudera.flume.conf.thrift.FlumeMasterAdminServer$getConfigs_result.write(FlumeMasterAdminServer.java:3066)
at com.cloudera.flume.conf.thrift.FlumeMasterAdminServer$Processor$getConfigs.process(FlumeMasterAdminServer.java:382)
at com.cloudera.flume.conf.thrift.FlumeMasterAdminServer$Processor.process(FlumeMasterAdminServer.java:302)
at org.apache.thrift.server.TSaneThreadPoolServer$WorkerProcess.run(TSaneThreadPoolServer.java:280)
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:619)