Uploaded image for project: 'Apache Storm'
  1. Apache Storm
  2. STORM-439

UI unable to view topologies with percent encoded values in id

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.9.2-incubating
    • 0.9.3
    • storm-core
    • 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.

      Attachments

        Activity

          People

            parth.brahmbhatt Parth Brahmbhatt
            bbaugher Bryan Baugher
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: