Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-5602

The Discovery module does not work any more after a ResourceResolverFactory reactivation

    XMLWordPrintableJSON

Details

    Description

      The Discovery module does not work any more after the Resource Resolver Factory is reconfigured. To reproduce this start the latest launchpad (built from https://github.com/apache/sling/blob/c441d5b672d1952a82a1c9fe1e6d81e86cec0018/launchpad/builder/src/main/provisioning/sling.txt) and then:

      1. go to http://localhost:8080/system/console/configMgr/org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl
      2. click on save (this will trigger the component's reactivation)
      3. check the error log
      14.03.2016 16:29:57.331 *ERROR* [discovery.connectors.common.runner.7fd8d00a-802a-4367-a384-64024e28dbbc.discoveryLiteCheck] org.apache.sling.discovery.oak.cluster.OakClusterViewService getLocalClusterView: repository exception: java.lang.Exception: Could not adapt resourceResolver to session: org.apache.sling.resourceresolver.impl.ResourceResolverImpl@499d9cc9
      java.lang.Exception: Could not adapt resourceResolver to session: org.apache.sling.resourceresolver.impl.ResourceResolverImpl@499d9cc9
      	at org.apache.sling.discovery.commons.providers.spi.base.DiscoveryLiteDescriptor.getDescriptorFrom(DiscoveryLiteDescriptor.java:41)
      	at org.apache.sling.discovery.oak.cluster.OakClusterViewService.getLocalClusterView(OakClusterViewService.java:111)
      	at org.apache.sling.discovery.base.commons.BaseDiscoveryService.getTopology(BaseDiscoveryService.java:77)
      	at org.apache.sling.discovery.oak.OakDiscoveryService.checkForTopologyChange(OakDiscoveryService.java:657)
      	at org.apache.sling.discovery.oak.pinger.OakViewChecker.discoveryLiteCheck(OakViewChecker.java:232)
      	at org.apache.sling.discovery.oak.pinger.OakViewChecker.access$000(OakViewChecker.java:64)
      	at org.apache.sling.discovery.oak.pinger.OakViewChecker$1.run(OakViewChecker.java:208)
      	at org.apache.sling.discovery.base.commons.PeriodicBackgroundJob.safelyRun(PeriodicBackgroundJob.java:86)
      	at org.apache.sling.discovery.base.commons.PeriodicBackgroundJob.run(PeriodicBackgroundJob.java:77)
      	at java.lang.Thread.run(Thread.java:745)
      14.03.2016 16:29:57.332 *INFO* [discovery.connectors.common.runner.7fd8d00a-802a-4367-a384-64024e28dbbc.discoveryLiteCheck] org.apache.sling.discovery.base.commons.BaseDiscoveryService getTopology: undefined cluster view: REPOSITORY_EXCEPTION] org.apache.sling.discovery.base.commons.UndefinedClusterViewException: Exception while processing descriptor: java.lang.Exception: Could not adapt resourceResolver to session: org.apache.sling.resourceresolver.impl.ResourceResolverImpl@499d9cc9
      14.03.2016 16:29:57.332 *INFO* [discovery.connectors.common.runner.7fd8d00a-802a-4367-a384-64024e28dbbc.discoveryLiteCheck] org.apache.sling.discovery.commons.providers.base.ViewStateManagerImpl enqueueForAll: sending topologyEvent TopologyEvent [type=TOPOLOGY_CHANGING, oldView=DefaultTopologyView[current=false, num=1, instances=7fd8d00a-802a-4367-a384-64024e28dbbc[local=true,leader=true]], newView=null], to all (5) listeners
      14.03.2016 16:29:57.332 *ERROR* [Discovery-AsyncEventSender] org.apache.sling.discovery.oak.TopologyWebConsolePlugin addDiscoveryLiteHistoryEntry: Exception: java.lang.Exception: Could not adapt resourceResolver to session: org.apache.sling.resourceresolver.impl.ResourceResolverImpl@149e86f0
      java.lang.Exception: Could not adapt resourceResolver to session: org.apache.sling.resourceresolver.impl.ResourceResolverImpl@149e86f0
      	at org.apache.sling.discovery.commons.providers.spi.base.DiscoveryLiteDescriptor.getDescriptorFrom(DiscoveryLiteDescriptor.java:41)
      	at org.apache.sling.discovery.oak.TopologyWebConsolePlugin.updateDiscoveryLiteHistory(TopologyWebConsolePlugin.java:771)
      	at org.apache.sling.discovery.oak.TopologyWebConsolePlugin.handleTopologyEvent(TopologyWebConsolePlugin.java:722)
      	at org.apache.sling.discovery.commons.providers.base.AsyncTopologyEvent.trigger(AsyncTopologyEvent.java:53)
      	at org.apache.sling.discovery.commons.providers.base.AsyncEventSender.run(AsyncEventSender.java:118)
      	at java.lang.Thread.run(Thread.java:745)
      

      The Discovery module will not recover from this state. Furthermore it will also prevent the RRF to reactivate and basically makes the instance unusable.

      Attachments

        Issue Links

          Activity

            People

              cziegeler Carsten Ziegeler
              radu Radu Cotescu
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: