Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.9.2-incubating
-
None
Description
We recently upgraded to 0.9.2 from 0.8.2 or so. One of our topologies had a percent encoded value in the id 'destination%F5backfill' (or interpreted 'destination_backfill'). The UI is unable to view this topology giving us the error,
NotAliveException(msg:destination_backfill-2-1407261676) at backtype.storm.generated.Nimbus$getTopologyInfo_result.read(Nimbus.java:11347) at org.apache.thrift7.TServiceClient.receiveBase(TServiceClient.java:78) at backtype.storm.generated.Nimbus$Client.recv_getTopologyInfo(Nimbus.java:491) at backtype.storm.generated.Nimbus$Client.getTopologyInfo(Nimbus.java:478) at backtype.storm.ui.core$topology_page.invoke(core.clj:587) at backtype.storm.ui.core$fn__8229.invoke(core.clj:796) at compojure.core$make_route$fn__3365.invoke(core.clj:93) at compojure.core$if_route$fn__3353.invoke(core.clj:39) at compojure.core$if_method$fn__3346.invoke(core.clj:24) at compojure.core$routing$fn__3371.invoke(core.clj:106) at clojure.core$some.invoke(core.clj:2443) at compojure.core$routing.doInvoke(core.clj:106) at clojure.lang.RestFn.applyTo(RestFn.java:139) at clojure.core$apply.invoke(core.clj:619) at compojure.core$routes$fn__3375.invoke(core.clj:111) at ring.middleware.reload$wrap_reload$fn__7540.invoke(reload.clj:14) at backtype.storm.ui.core$catch_errors$fn__8268.invoke(core.clj:858) at ring.middleware.keyword_params$wrap_keyword_params$fn__4029.invoke(keyword_params.clj:27) at ring.middleware.nested_params$wrap_nested_params$fn__4068.invoke(nested_params.clj:65) at ring.middleware.params$wrap_params$fn__4001.invoke(params.clj:55) at ring.middleware.multipart_params$wrap_multipart_params$fn__4096.invoke(multipart_params.clj:103) at ring.middleware.flash$wrap_flash$fn__4277.invoke(flash.clj:14) at ring.middleware.session$wrap_session$fn__4266.invoke(session.clj:43) at ring.middleware.cookies$wrap_cookies$fn__4197.invoke(cookies.clj:160) at ring.adapter.jetty$proxy_handler$fn__7179.invoke(jetty.clj:16) at ring.adapter.jetty.proxy$org.mortbay.jetty.handler.AbstractHandler$0.handle(Unknown Source) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
So it seems the UI is translating the percent encoded value which causes this issue. We shouldn't be putting these values in our topologies id in the first place but thought I would log this to see if you wanted to try to limit what characters are allowed in a topology id.