Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0.0, 2.1.0, 2.2.0
-
None
Description
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
Topology summary (Last error appears empty, failed metric = 40)
API response
localhost:8080/api/v1/topology/topology-test-1-1591927011
{ "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 } ] }
Component summary (Displays the errors)
API response
localhost:8080/api/v1/topology/topology-test-1-1591927011/component/TopLevel.test?sys=false
{ "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" } ] }
Errors reported using
// Where outputCollector is the instance passed during BaseRichBolt::prepare // public void prepare(Map stormConf, TopologyContext context, OutputCollector outputCollector) { outputCollector().reportError(e); outputCollector().fail(input);