[ 
https://issues.apache.org/jira/browse/STORM-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14096836#comment-14096836
 ] 

ASF GitHub Bot commented on STORM-443:
--------------------------------------

Github user dashengju commented on the pull request:

    https://github.com/apache/incubator-storm/pull/217#issuecomment-52169197
  
    @d2r 
    
    at first, I think just remove call 
_process.getProcessTerminationInfoString() is ok. 
    #46 when make a upmerge,  it call 
_process.getProcessTerminationInfoString() again, so it did not fixes the 
problem.
    
    I think we need another PR to fix the problem, may be in #218 ,  but now 
the PR is not finish,  I will try to find a way to peek at the steam to see if 
there is anything to read. After that, I will ask for a review.


> 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
>
> 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)

Reply via email to