[ https://issues.apache.org/jira/browse/SLING-5602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15199337#comment-15199337 ]
Carsten Ziegeler commented on SLING-5602: ----------------------------------------- [~egli] I think as a first step we should restore the behaviour of the old resource resolver implementation: if a stateful resource provider is unregistered, the resource resolver factory is unregistered. And if a stateless resource provider is unregistered, it depends on the configuration whether the unregistration is done as well. Once we have this, we can come back to this issue. Otherwise we might find a solution here, bring back the old behaviour and have a new / similar issue. WDYT? > The Discovery module does not work any more after a ResourceResolverFactory > reactivation > ---------------------------------------------------------------------------------------- > > Key: SLING-5602 > URL: https://issues.apache.org/jira/browse/SLING-5602 > Project: Sling > Issue Type: Bug > Components: ResourceResolver > Affects Versions: Resource Resolver 1.4.8 > Reporter: Radu Cotescu > Assignee: Carsten Ziegeler > Priority: Blocker > Fix For: Resource Resolver 1.5.0 > > > 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: > # go to > http://localhost:8080/system/console/configMgr/org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl > # click on save (this will trigger the component's reactivation) > # check the error log > {noformat} > 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) > {noformat} > The Discovery module will not recover from this state. Furthermore it will > also prevent the RRF to reactivate and basically makes the instance unusable. -- This message was sent by Atlassian JIRA (v6.3.4#6332)