Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-3191

NPE in pulse prevents locator shutdown

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: 1.2.0
    • Component/s: pulse
    • Labels:
      None

      Description

      We found that when there is an open connection to pulse `gfsh stop locator` fails to correctly stop the locator process. In the locator logs we see:

      [warning 2017/07/11 21:13:44.713 UTC locator-ced56c23-6523-413c-9b24-dadf10683b89 <Distribution Locator on 10.0.8.7> tid=0xe] Failed to stop the HTTP service because: null
      java.lang.NullPointerException
      	at org.apache.geode.tools.pulse.internal.data.Repository.removeAllClusters(Repository.java:226)
      	at org.apache.geode.tools.pulse.internal.PulseAppListener.contextDestroyed(PulseAppListener.java:83)
      	at org.eclipse.jetty.server.handler.ContextHandler.callContextDestroyed(ContextHandler.java:843)
      	at org.eclipse.jetty.servlet.ServletContextHandler.callContextDestroyed(ServletContextHandler.java:543)
      	at org.eclipse.jetty.server.handler.ContextHandler.stopContext(ContextHandler.java:824)
      	at org.eclipse.jetty.servlet.ServletContextHandler.stopContext(ServletContextHandler.java:353)
      	at org.eclipse.jetty.webapp.WebAppContext.stopWebapp(WebAppContext.java:1385)
      	at org.eclipse.jetty.webapp.WebAppContext.stopContext(WebAppContext.java:1349)
      	at org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:872)
      	at org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:269)
      	at org.eclipse.jetty.webapp.WebAppContext.doStop(WebAppContext.java:541)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161)
      	at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161)
      	at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73)
      	at org.eclipse.jetty.server.Server.doStop(Server.java:476)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
      	at org.apache.geode.management.internal.ManagementAgent.stopHttpService(ManagementAgent.java:334)
      	at org.apache.geode.management.internal.ManagementAgent.stopAgent(ManagementAgent.java:157)
      	at org.apache.geode.management.internal.SystemManagementService.close(SystemManagementService.java:265)
      	at org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheRemoval(ManagementAdapter.java:735)
      	at org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:117)
      	at org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2162)
      	at org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:535)
      	at org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:2145)
      	at org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:1988)
      	at org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:1984)
      	at org.apache.geode.distributed.internal.InternalLocator.handleShutdown(InternalLocator.java:984)
      	at org.apache.geode.distributed.internal.InternalLocator.access$500(InternalLocator.java:103)
      	at org.apache.geode.distributed.internal.InternalLocator$PrimaryHandler.shutDown(InternalLocator.java:1359)
      	at org.apache.geode.distributed.internal.tcpserver.TcpServer.run(TcpServer.java:324)
      	at org.apache.geode.distributed.internal.tcpserver.TcpServer$2.run(TcpServer.java:227)
      
      [error 2017/07/11 21:13:44.714 UTC locator-ced56c23-6523-413c-9b24-dadf10683b89 <Distribution Locator on 10.0.8.7> tid=0xe] Failed to properly release resources held by the HTTP service: !STOPPED
      java.lang.IllegalStateException: !STOPPED
      	at org.eclipse.jetty.server.handler.HandlerWrapper.destroy(HandlerWrapper.java:134)
      	at org.apache.geode.management.internal.ManagementAgent.stopHttpService(ManagementAgent.java:339)
      	at org.apache.geode.management.internal.ManagementAgent.stopAgent(ManagementAgent.java:157)
      	at org.apache.geode.management.internal.SystemManagementService.close(SystemManagementService.java:265)
      	at org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheRemoval(ManagementAdapter.java:735)
      	at org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:117)
      	at org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2162)
      	at org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:535)
      	at org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:2145)
      	at org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:1988)
      	at org.apache.geode.internal.cache.GemFireCacheImpl.close(GemFireCacheImpl.java:1984)
      	at org.apache.geode.distributed.internal.InternalLocator.handleShutdown(InternalLocator.java:984)
      	at org.apache.geode.distributed.internal.InternalLocator.access$500(InternalLocator.java:103)
      	at org.apache.geode.distributed.internal.InternalLocator$PrimaryHandler.shutDown(InternalLocator.java:1359)
      	at org.apache.geode.distributed.internal.tcpserver.TcpServer.run(TcpServer.java:324)
      	at org.apache.geode.distributed.internal.tcpserver.TcpServer$2.run(TcpServer.java:227)
      

        Issue Links

          Activity

          Hide
          klund Kirk Lund added a comment -

          Here's the commit with the fix:

          commit 31b650742d7552d12495bc10f7d7a8a88b78370d
          Author: Patrick Rhomberg <prhomberg@pivotal.io>
          Date:   Wed Mar 22 13:27:34 2017 -0700
          
              GEODE-1274: Migration from PulseLogWriter to Log4j standard and removal of associated classes.
              
              * To avoid dependency on geode-core, the pulse loggers are instantiated directly from LogManager, rather than canonical LogService (which itself extends LogManager).
              * Significant reduction of logging level state checks, relying on Log4j handling.
              * Significant reduction of string concatenation, relying on Log4j2 string substitutions.
              * Reduction of logging using an exception e.getMessage, favoring instead passing the exception itself for the stacktrace.
              * Multiple identical exception blocks collapsed.
              * this closes #446
          
          Show
          klund Kirk Lund added a comment - Here's the commit with the fix: commit 31b650742d7552d12495bc10f7d7a8a88b78370d Author: Patrick Rhomberg <prhomberg@pivotal.io> Date: Wed Mar 22 13:27:34 2017 -0700 GEODE-1274: Migration from PulseLogWriter to Log4j standard and removal of associated classes. * To avoid dependency on geode-core, the pulse loggers are instantiated directly from LogManager, rather than canonical LogService (which itself extends LogManager). * Significant reduction of logging level state checks, relying on Log4j handling. * Significant reduction of string concatenation, relying on Log4j2 string substitutions. * Reduction of logging using an exception e.getMessage, favoring instead passing the exception itself for the stacktrace. * Multiple identical exception blocks collapsed. * this closes #446

            People

            • Assignee:
              Unassigned
              Reporter:
              swapnil.bawaskar Swapnil Bawaskar
            • Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development