Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.0.0
    • Fix Version/s: 2.0.0
    • Component/s: storm-core
    • Labels:
      None

      Description

      With latest storm code, I am unable to open ui and see bolt information. I am using the vagrant setup. On the ui page that open, I see the following error.

      Internal Server Error
      org.apache.storm.thrift.transport.TTransportException
      	at org.apache.storm.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
      	at org.apache.storm.thrift.transport.TTransport.readAll(TTransport.java:86)
      	at org.apache.storm.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
      	at org.apache.storm.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
      	at org.apache.storm.thrift.transport.TTransport.readAll(TTransport.java:86)
      	at org.apache.storm.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429)
      	at org.apache.storm.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318)
      	at org.apache.storm.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219)
      	at org.apache.storm.thrift.TServiceClient.receiveBase(TServiceClient.java:77)
      	at org.apache.storm.generated.Nimbus$Client.recv_getComponentPageInfo(Nimbus.java:1369)
      	at org.apache.storm.generated.Nimbus$Client.getComponentPageInfo(Nimbus.java:1353)
      	at org.apache.storm.ui.core$component_page.invoke(core.clj:1026)
      	at org.apache.storm.ui.core$fn__4308.invoke(core.clj:1214)
      	at org.apache.storm.shade.compojure.core$make_route$fn__789.invoke(core.clj:100)
      	at org.apache.storm.shade.compojure.core$if_route$fn__777.invoke(core.clj:46)
      	at org.apache.storm.shade.compojure.core$if_method$fn__770.invoke(core.clj:31)
      	at org.apache.storm.shade.compojure.core$routing$fn__795.invoke(core.clj:113)
      	at clojure.core$some.invoke(core.clj:2570)
      	at org.apache.storm.shade.compojure.core$routing.doInvoke(core.clj:113)
      	at clojure.lang.RestFn.applyTo(RestFn.java:139)
      	at clojure.core$apply.invoke(core.clj:632)
      	at org.apache.storm.shade.compojure.core$routes$fn__799.invoke(core.clj:118)
      	at org.apache.storm.shade.ring.middleware.json$wrap_json_params$fn__3573.invoke(json.clj:56)
      	at org.apache.storm.shade.ring.middleware.multipart_params$wrap_multipart_params$fn__1924.invoke(multipart_params.clj:118)
      	at org.apache.storm.shade.ring.middleware.reload$wrap_reload$fn__3102.invoke(reload.clj:22)
      	at org.apache.storm.ui.helpers$requests_middleware$fn__2152.invoke(helpers.clj:54)
      	at org.apache.storm.ui.core$catch_errors$fn__4474.invoke(core.clj:1460)
      	at org.apache.storm.shade.ring.middleware.keyword_params$wrap_keyword_params$fn__1844.invoke(keyword_params.clj:35)
      	at org.apache.storm.shade.ring.middleware.nested_params$wrap_nested_params$fn__1887.invoke(nested_params.clj:84)
      	at org.apache.storm.shade.ring.middleware.params$wrap_params$fn__1816.invoke(params.clj:64)
      	at org.apache.storm.shade.ring.middleware.multipart_params$wrap_multipart_params$fn__1924.invoke(multipart_params.clj:118)
      	at org.apache.storm.shade.ring.middleware.flash$wrap_flash$fn__2139.invoke(flash.clj:35)
      	at org.apache.storm.shade.ring.middleware.session$wrap_session$fn__2125.invoke(session.clj:98)
      	at org.apache.storm.shade.ring.util.servlet$make_service_method$fn__1674.invoke(servlet.clj:127)
      	at org.apache.storm.shade.ring.util.servlet$servlet$fn__1678.invoke(servlet.clj:136)
      	at org.apache.storm.shade.ring.util.servlet.proxy$javax.servlet.http.HttpServlet$ff19274a.service(Unknown Source)
      	at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:654)
      	at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
      	at org.apache.storm.logging.filters.AccessLoggingFilter.handle(AccessLoggingFilter.java:47)
      	at org.apache.storm.logging.filters.AccessLoggingFilter.doFilter(AccessLoggingFilter.java:39)
      	at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
      	at org.apache.storm.shade.org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)
      	at org.apache.storm.shade.org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)
      	at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
      	at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
      	at org.apache.storm.shade.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
      	at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
      	at org.apache.storm.shade.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
      	at org.apache.storm.shade.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      	at org.apache.storm.shade.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      	at org.apache.storm.shade.org.eclipse.jetty.server.Server.handle(Server.java:369)
      	at org.apache.storm.shade.org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
      	at org.apache.storm.shade.org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
      	at org.apache.storm.shade.org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
      	at org.apache.storm.shade.org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
      	at org.apache.storm.shade.org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
      	at org.apache.storm.shade.org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      	at org.apache.storm.shade.org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
      	at org.apache.storm.shade.org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      	at org.apache.storm.shade.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      	at org.apache.storm.shade.org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      	at java.lang.Thread.run(Thread.java:745)
      

      Url: http://node1:8080/component.html?id=SlidingTimeCorrectness-winSec1slideSec1VerificationBolt&topology_id=SlidingWindowTestw1s1-2-1483646178

      There is a stacktrace corresponding to this in nimbus.log showing IndexOutOfBound error:

      2017-01-05 19:57:26.934 pool-15-thread-41 o.a.s.d.n.Nimbus [WARN] getComponentPageInfo exception. (topo id='SlidingWindowTestw1s1-2-1483646178')
      java.lang.ArrayIndexOutOfBoundsException: -2
              at java.util.ArrayList.elementData(ArrayList.java:418)
              at java.util.ArrayList.get(ArrayList.java:431)
              at org.apache.storm.daemon.nimbus.Nimbus.getComponentPageInfo(Nimbus.java:3606)
              at org.apache.storm.generated.Nimbus$Processor$getComponentPageInfo.getResult(Nimbus.java:4097)
              at org.apache.storm.generated.Nimbus$Processor$getComponentPageInfo.getResult(Nimbus.java:4081)
              at org.apache.storm.thrift.ProcessFunction.process(ProcessFunction.java:39)
              at org.apache.storm.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
              at org.apache.storm.security.auth.SimpleTransportPlugin$SimpleWrapProcessor.process(SimpleTransportPlugin.java:160)
              at org.apache.storm.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:518)
              at org.apache.storm.thrift.server.Invocation.run(Invocation.java:18)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745)
      

      The problem is that we expect the index to be positive, but since it is a mod of hashcode it can be negative.

                      int taskIndex = TupleUtils.listHashCode(Arrays.asList(componentId)) %
                              tasks.size();
                      int taskId = tasks.get(taskIndex);
      

      https://github.com/apache/storm/blob/2b82fc8b5328fd4fbd680998c6051d9496c102d7/storm-core/src/jvm/org/apache/storm/daemon/nimbus/Nimbus.java#L3605

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                raghavgautam Raghav Kumar Gautam
                Reporter:
                raghavgautam Raghav Kumar Gautam
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3h 10m
                  3h 10m