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

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

                Dates

                • Created:
                  Updated:
                  Resolved: