Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.10.0
-
None
Description
When you supply the commandline parameter for a custom Nimbus thrift port, the number value is interpreted as a Long, but internally used as an Integer. This leads to a ClassCastException.
This is executed (redacted):
/opt/storm/apache-storm-0.10.0/bin/storm kill -w 10 -c nimbus.thrift.port=6627 -c nimbus.host=vm0009 #
"
This is the output:
-
- [out :: vm0009] 2627 [main] INFO b.s.u.Utils - Using defaults.yaml from resources
- [out :: vm0009] 2795 [main] INFO b.s.u.Utils - Using storm.yaml from resources
- [out :: vm0009] 4262 [main] INFO b.s.u.Utils - Using defaults.yaml from resources
- [out :: vm0009] 4287 [main] INFO b.s.u.Utils - Using storm.yaml from resources
- [out :: vm0009] 4328 [main] INFO b.s.thrift - Connecting to Nimbus at vm0009:6627 as user:
- [out :: vm0009] 4328 [main] INFO b.s.u.Utils - Using defaults.yaml from resources
- [out :: vm0009] 4348 [main] INFO b.s.u.Utils - Using storm.yaml from resources
- [out :: vm0009] Exception in thread "main"
- [out :: vm0009] java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
- [out :: vm0009]
- [out :: vm0009] at backtype.storm.thrift$nimbus_client_and_conn.invoke(thrift.clj:75)
- [out :: vm0009]
- [out :: vm0009] at backtype.storm.thrift$nimbus_client_and_conn.invoke(thrift.clj:72)
- [out :: vm0009]
- [out :: vm0009]
- [out :: vm0009] at backtype.storm.command.kill_topology$_main.doInvoke(kill_topology.clj:26)
- [out :: vm0009]
- [out :: vm0009] at clojure.lang.RestFn.applyTo(RestFn.java:137)
- [out :: vm0009]
- [out :: vm0009] at backtype.storm.command.kill_topology.main(Unknown Source)
- [out :: vm0009]
I have seen other related issues: https://issues.apache.org/jira/browse/STORM-1578
I believe this is the same issue (internally using an Integer, but converting the input to a Long) in a different area.