Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-8875

Topology is slow due to geocoding failures

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 19.0.0
    • Fix Version/s: 19.0.0
    • Component/s: Web UI - Topology
    • Security Level: Default (Default Security Scheme)
    • Labels:
      None
    • Sprint:
      Horizon - Nov 9th

      Description

      On a system without internet access, the Topology UI can take several minutes to load.

      A stack trace reveals that the LocationInfoPanelItemProvider is stuck trying to perform geocoding.

      "qtp442973056-7011": running, holding [0x00000006c0888a40, 0x00000006503baec8]
      	at java.net.PlainSocketImpl.socketConnect(Native Method)
      	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
      	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
      	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
      	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
      	at java.net.Socket.connect(Socket.java:589)
      	at java.net.Socket.connect(Socket.java:538)
      	at java.net.Socket.<init>(Socket.java:434)
      	at java.net.Socket.<init>(Socket.java:286)
      	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
      	at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
      	at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
      	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
      	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
      	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
      	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
      	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
      	at com.google.code.geocoder.AdvancedGeoCoder.request(AdvancedGeoCoder.java:41)
      	at com.google.code.geocoder.Geocoder.geocode(Geocoder.java:60)
      	at org.opennms.features.geocoder.google.GoogleGeocoderService.getCoordinates(GoogleGeocoderService.java:114)
      	at Proxyb31aa1e5_0958_419a_b1b8_2ed3165d701c.getCoordinates(Unknown Source)
      	at org.opennms.features.topology.app.internal.info.CoordinateResolver.lambda$resolve$57(CoordinateResolver.java:106)
      	at org.opennms.features.topology.app.internal.info.CoordinateResolver$$Lambda$198/1883452688.apply(Unknown Source)
      	at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321)
      	at java.util.stream.Collectors$$Lambda$6/250075633.accept(Unknown Source)
      	at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
      	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
      	at org.opennms.features.topology.app.internal.info.CoordinateResolver.resolve(CoordinateResolver.java:102)
      	at org.opennms.features.topology.app.internal.info.LocationInfoPanelItemProvider.getContributions(LocationInfoPanelItemProvider.java:74)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager.lambda$null$8(TopologyUI.java:435)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager$$Lambda$180/1786446703.apply(Unknown Source)
      	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
      	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager.lambda$getInfoPanelComponents$10(TopologyUI.java:446)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager$$Lambda$179/30720112.doInTransaction(Unknown Source)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
      	at Proxyccfed29d_b932_4d94_b65b_6b1b71781b60.execute(Unknown Source)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager.getInfoPanelComponents(TopologyUI.java:431)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager.refreshInfoPanel(TopologyUI.java:463)
      	at org.opennms.features.topology.app.internal.TopologyUI$InfoPanelItemManager.graphChanged(TopologyUI.java:479)
      	at org.opennms.features.topology.app.internal.VEProviderGraphContainer.fireGraphChanged(VEProviderGraphContainer.java:735)
      	at org.opennms.features.topology.app.internal.VEProviderGraphContainer.redoLayout(VEProviderGraphContainer.java:484)
      	at org.opennms.features.topology.app.internal.TopologyUI.init(TopologyUI.java:607)
      	at com.vaadin.ui.UI.doInit(UI.java:641)
      	at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:222)
      	at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:74)
      	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
      	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1401)
      	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237)
      	at org.opennms.vaadin.extender.internal.extender.ApplicationFactoryServiceTracker$FactoryServlet.service(ApplicationFactoryServiceTracker.java:89)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
      

      The thread is stuck with this stack for several minutes.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mvr Markus von RĂ¼den
                Reporter:
                j-white Jesse White
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: