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

Marcel Reutegger commented on OAK-9200:
---------------------------------------

I was hoping the Whiteboard lookup can be removed. But it is still necessary 
for non-OSGi setups as done in BinaryAccessTest.

The PR looks good to me.

> Oak BlobAccessProvider reference in UserConfigurationImpl fails and leads to 
> performance issue
> ----------------------------------------------------------------------------------------------
>
>                 Key: OAK-9200
>                 URL: https://issues.apache.org/jira/browse/OAK-9200
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: blob, documentmk
>    Affects Versions: 1.22.4, 1.32.0
>            Reporter: Vinod Holani
>            Assignee: Vinod Holani
>            Priority: Major
>         Attachments: OAK-9200.patch, OAK-9200_V1.patch
>
>
> Threads are stuck as below logs. The cause of this is that the Oak 
> BlobAccessProvider reference in UserConfigurationImpl doesn't get initialized 
> because the UserConfigurationImpl component is starting before the 
> OakBlobAccessProvider 
>    java.lang.Thread.State: RUNNABLE
>       at 
> org.apache.felix.framework.Felix.removeServiceListener(Felix.java:3684)
>       at 
> org.apache.felix.framework.BundleContextImpl.removeServiceListener(BundleContextImpl.java:271)
>       at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:369)
>       - locked <0x00007f5a3508f3b8> (a org.osgi.util.tracker.ServiceTracker)
>       at 
> org.apache.jackrabbit.oak.osgi.OsgiWhiteboard$3.stop(OsgiWhiteboard.java:168)
>       at 
> org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.getService(WhiteboardUtils.java:194)
>       at 
> org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.getService(WhiteboardUtils.java:144)
>       at 
> org.apache.jackrabbit.oak.security.user.UserConfigurationImpl.getBlobAccessProvider(UserConfigurationImpl.java:275)
>       at 
> org.apache.jackrabbit.oak.security.user.UserConfigurationImpl.getUserManager(UserConfigurationImpl.java:251)
>       at 
> org.apache.jackrabbit.oak.security.authentication.token.TokenProviderImpl. 
> (TokenProviderImpl.java:138)
>       at 
> org.apache.jackrabbit.oak.security.authentication.token.TokenConfigurationImpl.getTokenProvider(TokenConfigurationImpl.java:162)
>       at 
> org.apache.jackrabbit.oak.spi.security.authentication.token.CompositeTokenConfiguration$1.apply(CompositeTokenConfiguration.java:46)
>       at 
> org.apache.jackrabbit.oak.spi.security.authentication.token.CompositeTokenConfiguration$1.apply(CompositeTokenConfiguration.java:43)
>       at 
> com.google.common.collect.Lists$TransformingRandomAccessList.get(Lists.java:572)
>       at 
> java.util.AbstractList$Itr.next(java.base@11.0.4/AbstractList.java:371)
>       at 
> org.apache.jackrabbit.oak.spi.security.authentication.token.CompositeTokenProvider.newInstance(CompositeTokenProvider.java:49)
>       at 
> org.apache.jackrabbit.oak.spi.security.authentication.token.CompositeTokenConfiguration.getTokenProvider(CompositeTokenConfiguration.java:49)
>       at 
> org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule.getTokenProvider(TokenLoginModule.java:220)
>       at 
> org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule.login(TokenLoginModule.java:127)
>       at 
> org.apache.felix.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:52)
>       at 
> javax.security.auth.login.LoginContext.invoke(java.base@11.0.4/LoginContext.java:726)
>       at 
> javax.security.auth.login.LoginContext$4.run(java.base@11.0.4/LoginContext.java:665)
>       at 
> javax.security.auth.login.LoginContext$4.run(java.base@11.0.4/LoginContext.java:663)
>       at java.security.AccessController.doPrivileged(java.base@11.0.4/Native 
> Method)
>       at 
> javax.security.auth.login.LoginContext.invokePriv(java.base@11.0.4/LoginContext.java:663)
>       at 
> javax.security.auth.login.LoginContext.login(java.base@11.0.4/LoginContext.java:574)
>       at 
> org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:163)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282)
>       at 
> org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225)
>       at 
> org.apache.jackrabbit.oak.jcr.session.SessionImpl.impersonate(SessionImpl.java:275)
>       at 
> com.adobe.granite.repository.impl.CRX3SessionImpl.impersonate(CRX3SessionImpl.java:149)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepository2.createServiceSession(AbstractSlingRepository2.java:201)
>       at 
> com.adobe.granite.repository.impl.SlingRepositoryImpl.createServiceSession(SlingRepositoryImpl.java:135)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepository2.createServiceSession(AbstractSlingRepository2.java:171)
>       at 
> org.apache.sling.jcr.base.AbstractSlingRepository2.loginService(AbstractSlingRepository2.java:381)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrProviderStateFactory.createProviderState(JcrProviderStateFactory.java:115)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.authenticate(JcrResourceProvider.java:304)
>       at 
> org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.authenticate(JcrResourceProvider.java:76)
>       at 
> org.apache.sling.resourceresolver.impl.providers.stateful.ProviderManager.authenticate(ProviderManager.java:161)
>       at 
> org.apache.sling.resourceresolver.impl.providers.stateful.ProviderManager.getOrCreateProvider(ProviderManager.java:87)
>       at 
> org.apache.sling.resourceresolver.impl.providers.stateful.ProviderManager.authenticateAll(ProviderManager.java:129)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverImpl.createControl(ResourceResolverImpl.java:142)
>       at org.apache.sling.resourceresolver.impl.ResourceResolverImpl. 
> (ResourceResolverImpl.java:103)
>       at org.apache.sling.resourceresolver.impl.ResourceResolverImpl. 
> (ResourceResolverImpl.java:97)
>       at 
> org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolverInternal(CommonResourceResolverFactoryImpl.java:280)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.getServiceResourceResolver(ResourceResolverFactoryImpl.java:89)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to