[ 
https://issues.apache.org/jira/browse/OAK-1734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated OAK-1734:
-------------------------------

    Attachment: 0001-OAK-1734-UserInitializer-initialize-runs-a-query-wit.patch

There's a far simpler solution, see the 0001 patch I attached.

PS. This is actually a regression from my earlier change in OAK-1719 where I 
removed the extra WorkspaceInitializer arguments. The initializers run at a 
very early phase in repository construction and should be as self-contained as 
possible. In this case the initializer actually directly creates the index 
definitions it then expects to use, so it already knows for sure which index 
provider it needs and thus shouldn't have to rely on the rest of the system to 
pass the correct provider as an argument.

> UserInitializer#initialize runs a query without any indexes
> -----------------------------------------------------------
>
>                 Key: OAK-1734
>                 URL: https://issues.apache.org/jira/browse/OAK-1734
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core, security
>    Affects Versions: 0.20.0
>            Reporter: Alex Parvulescu
>            Assignee: Alex Parvulescu
>             Fix For: 1.0
>
>         Attachments: 
> 0001-OAK-1734-UserInitializer-initialize-runs-a-query-wit.patch, 
> OAK-1734.patch
>
>
> UserInitializer#initialize runs a UUID query at repository startup but it's 
> not using any defined IndexProviders, which means it will traverse the entire 
> repo [0].
> The traversal warning can also be seen running the bench tests.
> {code}
> org.apache.jackrabbit.oak.spi.query.Cursors$TraversingCursor.fetchNext(Cursors.java:314)
>       at 
> org.apache.jackrabbit.oak.spi.query.Cursors$TraversingCursor.next(Cursors.java:291)
>       at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.next(SelectorImpl.java:390)
>       at 
> org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.fetchNext(QueryImpl.java:627)
>       at 
> org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.hasNext(QueryImpl.java:647)
>       at 
> org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:317)
>       at 
> org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:306)
>       at 
> org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID(IdentifierManager.java:302)
>       at 
> org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getTree(IdentifierManager.java:132)
>       at 
> org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByContentID(AuthorizableBaseProvider.java:56)
>       at 
> org.apache.jackrabbit.oak.security.user.AuthorizableBaseProvider.getByID(AuthorizableBaseProvider.java:51)
>       at 
> org.apache.jackrabbit.oak.security.user.UserProvider.getAuthorizable(UserProvider.java:191)
>       at 
> org.apache.jackrabbit.oak.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:103)
>       at 
> org.apache.jackrabbit.oak.security.user.UserInitializer.initialize(UserInitializer.java:116)
>       at 
> org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:57)
>       at org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:534)
>       at org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:187)
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to