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

Pascal Brueckner commented on STORM-3652:
-----------------------------------------

While the summary view now properly mentions errors again, listing the error 
details within the Bolt detail view most often fails: The table just states "No 
data available in table" This is not always reproducible. The error log will 
sometimes be shown correctly, but in the majority of my test cases the error 
log was empty.

To reproduce the issue I modified the ExclamationBolt of the storm-starter 
topology to throw a RuntimeException on the first execution attempt, but 
complete successfully the second time:


{{ public void execute(Tuple tuple) {}}
{{  File file = new File("/tmp/X");}}
{{  }}{{try {}}
{{    if (file.createNewFile()) {}}
{{      throw new RuntimeException(new Exception("RTEXCP"));}}
{{    }}{{}}}
{{  }}{{} catch (IOException e) {}}
{{    }}{{System.out.println("IOEXCP");}}
{{  }}}
}

Running this topology will (most of the time) show an error in the summary, but 
omit the details.

>  Last error not displayed  in Topology summary storm ui
> -------------------------------------------------------
>
>                 Key: STORM-3652
>                 URL: https://issues.apache.org/jira/browse/STORM-3652
>             Project: Apache Storm
>          Issue Type: Bug
>          Components: storm-webapp
>    Affects Versions: 2.0.0, 2.1.0, 2.2.0
>            Reporter: jbarreto
>            Assignee: Stephen Powis
>            Priority: Major
>             Fix For: 2.3.0
>
>          Time Spent: 3h 50m
>  Remaining Estimate: 0h
>
> Under storm ui "Topology summary" lastError is not getting populated, you 
> need to go into "Component summary"
>   
>  Seems some body raised a similar question here 
> [https://github.com/apache/storm/pull/2828#issuecomment-420790179]
> STORM-3217 fixed the component page, but not the topology page
>  is it because it is missing here 
> [https://github.com/apache/storm/blob/v2.1.0/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java#L1225]
>  
> I see it is in this section added 
> [https://github.com/apache/storm/blob/v2.1.0/storm-webapp/src/main/java/org/apache/storm/daemon/ui/UIHelpers.java#L1480]
>   
> h2. Topology summary ({color:#de350b}Last error appears empty, failed metric 
> = 40{color})
> *API response*
>  localhost:8080/api/v1/topology/topology-test-1-1591927011
> {code:java}
>  
> {
>    "bolts":[
>       {
>          "requestedCpu":10.0,
>          "encodedBoltId":"TopLevel.test",
>          "transferred":0,
>          "lastError":"",  <-- *empty*
>          "processLatency":"0.000",
>          "executeLatency":"5.000",
>          "executed":40,
>          "failed":40, <-- *failed count not zero*
>          "requestedMemOnHeap":128.0,
>          "acked":0,
>          "capacity":"0.001",
>          "emitted":0,
>          "requestedMemOffHeap":0.0,
>          "executors":1,
>          "requestedGenericResourcesComp":"",
>          "boltId":"TopLevel.test",
>          "tasks":1
>       }
>    ]
> }
> {code}
>  
> h2. Component summary ({color:#00875a}Displays the errors{color})
> *API response*
>  
> localhost:8080/api/v1/topology/topology-test-1-1591927011/component/TopLevel.test?sys=false
> {code:java}
> {
>    "requestedGenericResources":"",
>    "componentErrors":[
>       {
>          "errorTime":1591928686,
>          
> "errorWorkerLogLink":"http:\/\/localhost:8000\/api\/v1\/log?file=topology-test-1-1591927011%2F6700%2Fworker.log",
>          "errorLapsedSecs":16,
>          "errorPort":6700,
>          "error":"java.lang.IllegalArgumentException: Error with 
> IllegalArgumentException\n\tat 
> com.test.TestBolt.execute(TestBolt.java:35)\n\tat 
> org.apache.storm.executor.bolt.BoltExecutor.tupleActionFn(BoltExecutor.java:236)\n\tat
>  org.apache.storm.executor.Executor.accept(Executor.java:283)\n\tat 
> org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:131)\n\tat 
> org.apache.storm.utils.JCQueue.consume(JCQueue.java:111)\n\tat 
> org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:172)\n\tat
>  
> org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:159)\n\tat
>  org.apache.storm.utils.Utils$1.run(Utils.java:394)\n\tat 
> java.lang.Thread.run(Thread.java:748)\n",
>          "errorHost":"localhost"
>       }
>    ]
> }
> {code}
>  Errors reported using
> {code:java}
> // Where outputCollector is the instance passed during BaseRichBolt::prepare
> // public void prepare(Map stormConf, TopologyContext context, 
> OutputCollector outputCollector) {
> outputCollector().reportError(e);
> outputCollector().fail(input);
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to