[ 
https://issues.apache.org/jira/browse/SLING-5602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15199908#comment-15199908
 ] 

Carsten Ziegeler commented on SLING-5602:
-----------------------------------------

I think I found the problem: the resource resolver factory was registered more 
than once due to concurrent registrations. In that case, the discovery service 
was still bound to the old registrations (which is totally legal), but that 
registration became useless as the new registration took over.
I think I fixed this problem now in trunk, usually I could reproduce this after 
a second reconfiguration. I did now several times 10 reconfigurations without 
any problem.

[~egli] Could you please verify?

> 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.4.10
>
>
> 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)

Reply via email to