[
https://issues.apache.org/jira/browse/STORM-443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Joseph Evans resolved STORM-443.
---------------------------------------
Resolution: Fixed
Fix Version/s: 0.9.3-incubating
Assignee: DashengJu
Thanks DashengJu for the fix. I merged this into master
> multilang log's loglevel protocol can cause hang
> -------------------------------------------------
>
> Key: STORM-443
> URL: https://issues.apache.org/jira/browse/STORM-443
> Project: Apache Storm (Incubating)
> Issue Type: Bug
> Affects Versions: 0.9.3-incubating
> Reporter: DashengJu
> Assignee: DashengJu
> Fix For: 0.9.3-incubating
>
>
> Storm now support logging level to multilang protocol spout and bolt. But the
> implementation is not compatible with old log protocol with no logging level.
> With old topology who use old protocol, when they send log with no loglevel,
> JsonSerializer's readShellMsg function will throw NPE at:
> if (command.equals("log")) {
> long logLevel = (Long)msg.get("level"); //throw NPE at here
> shellMsg.setLogLevel((int)logLevel);
> }
> ShellBolt will catch the NPE, and call die(), and die() will get error info
> from sub process's error stream in
> _process.getProcessTerminationInfoString(), but the error stream have no data
> come, it will hangs.
> private void die(Throwable exception) {
> String processInfo = _process.getProcessInfoString() +
> _process.getProcessTerminationInfoString();
> _exception = new RuntimeException(processInfo, exception);
> }
> This PR will fix the problem of log level implementation to compatible with
> old log protocol. And the die problem should be solved by [~xiaokang] 's PR
> https://github.com/apache/incubator-storm/pull/46
--
This message was sent by Atlassian JIRA
(v6.2#6252)