Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-15085

Browse component/asset is unusably slow when there are large numbers of content selector privileges

    XMLWordPrintable

    Details

      Description

      If you have very large numbers of content selector path privileges then browsing components and assets in Nexus 3 becomes unusably slow.

      This was observed in a user's instance which has 813 repositories, 7836 content selector privileges, and 429 path based content selectors which use regular expressions.  There were a very large number of components as well, ~5Tb.

       

      qtp747243986-1558 id=1558 state=RUNNABLE
      at java.lang.Object.hashCode(Native Method)
      at java.util.HashMap.hash(HashMap.java:338)
      at java.util.HashMap.put(HashMap.java:611)
      at java.util.HashSet.add(HashSet.java:219)
      at org.sonatype.nexus.security.internal.AuthorizationManagerImpl.listPrivileges(AuthorizationManagerImpl.java:232)
      at org.sonatype.nexus.security.internal.DefaultSecuritySystem.listPrivileges(DefaultSecuritySystem.java:173)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent.calculatePermissions(SecurityComponent.java:206)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getPermissions(SecurityComponent.java:177)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1.CGLIB$getPermissions$3(<generated>)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1$$FastClassByGuice$$e138cccd.invoke(<generated>)
      at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
      at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1.getPermissions(<generated>)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getState(SecurityComponent.java:186)
      at org.sonatype.nexus.rapture.internal.state.StateComponent.getState(StateComponent.java:87)
      at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.CGLIB$getState$0(<generated>)
      at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9$$FastClassByGuice$$f5589e80.invoke(<generated>)
      at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
      at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
      at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.getState(<generated>)
      at sun.reflect.GeneratedMethodAccessor253.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      qtp747243986-1578 id=1578 state=RUNNABLE
      at java.util.AbstractCollection.containsAll(AbstractCollection.java:317)
      at org.apache.shiro.authz.permission.WildcardPermission.implies(WildcardPermission.java:217)
      at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:471)
      at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:499)
      at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:489)
      at org.sonatype.nexus.security.authz.ExceptionCatchingModularRealmAuthorizer.isPermitted(ExceptionCatchingModularRealmAuthorizer.java:256)
      at org.apache.shiro.mgt.AuthorizingSecurityManager.isPermitted(AuthorizingSecurityManager.java:125)
      at org.apache.shiro.subject.support.DelegatingSubject.isPermitted(DelegatingSubject.java:175)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent.calculatePermissions(SecurityComponent.java:214)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getPermissions(SecurityComponent.java:177)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1.CGLIB$getPermissions$3(<generated>)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1$$FastClassByGuice$$e138cccd.invoke(<generated>)
      at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
      at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent$$EnhancerByGuice$$53f0c4b1.getPermissions(<generated>)
      at org.sonatype.nexus.rapture.internal.security.SecurityComponent.getState(SecurityComponent.java:186)
      at org.sonatype.nexus.rapture.internal.state.StateComponent.getState(StateComponent.java:87)
      at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.CGLIB$getState$0(<generated>)
      at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9$$FastClassByGuice$$f5589e80.invoke(<generated>)
      at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
      at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:49)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:47)
      at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
      at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
      at org.sonatype.nexus.rapture.internal.state.StateComponent$$EnhancerByGuice$$c680be9.getState(<generated>)

       

       

        Attachments

          Activity

            People

            Assignee:
            dbradicich Damian Bradicich
            Reporter:
            rseddon Rich Seddon
            Last Updated By:
            Peter Lynch
            Team:
            NXRM - Tron
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Date of First Response:

                tigCommentSecurity.panel-title