danhuawang opened a new issue, #9248:
URL: https://github.com/apache/gravitino/issues/9248

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   Grant APPLY_TAG ALLOW privileges to Role tagRole4 on securableObjects tag 
tag_test1 encounter 500
   
   ```
   URL: 
http://192.168.194.149:8090/api/metalakes/ml_tag_priv/permissions/roles/tagRole4/tag/tag_test1/grant
   
   Status code: 500
   
   Content Type: application/json
   
   Request Headers
   Accept=application/vnd.gravitino.v1+json
   Authorization=Basic YW5vbnltb3VzOnRlc3Q=
   Content-Type=application/json
   Content Body
   {
       "privileges": [
           {
               "name": "APPLY_TAG",
               "condition": "ALLOW"
           }
       ]
   }
   Response Headers
   Date: Tue, 25 Nov 2025 10:28:37 GMT
   Content-Type: application/json
   Transfer-Encoding: chunked
   Server: Jetty(9.4.51.v20230217)
   Response Body
   {
       "code": 1002,
       "type": "RuntimeException",
       "message": "Failed to operate object [tag_test1] operation [GRANT] under 
[tagRole4], reason [Can not get Role Entity]",
       "stack": [
           "java.lang.RuntimeException: Can not get Role Entity",
           "\tat 
org.apache.gravitino.authorization.GravitinoAuthorizer.handleRolePrivilegeChange(GravitinoAuthorizer.java:147)",
           "\tat 
org.apache.gravitino.hook.AccessControlHookDispatcher.notifyRoleUserRelChange(AccessControlHookDispatcher.java:242)",
           "\tat 
org.apache.gravitino.hook.AccessControlHookDispatcher.grantPrivilegeToRole(AccessControlHookDispatcher.java:217)",
           "\tat 
org.apache.gravitino.listener.AccessControlEventDispatcher.grantPrivilegeToRole(AccessControlEventDispatcher.java:489)",
           "\tat 
org.apache.gravitino.server.web.rest.PermissionOperations.lambda$grantPrivilegeToRole$4(PermissionOperations.java:217)",
           "\tat 
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)",
           "\tat java.base/javax.security.auth.Subject.doAs(Subject.java:439)",
           "\tat 
org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:44)",
           "\tat org.apache.gravitino.server.web.Utils.doAs(Utils.java:202)",
           "\tat 
org.apache.gravitino.server.web.rest.PermissionOperations.grantPrivilegeToRole(PermissionOperations.java:204)",
           "\tat 
org.apache.gravitino.server.web.rest.PermissionOperations_$$_jvst6e2_b._d5grantPrivilegeToRole(PermissionOperations_$$_jvst6e2_b.java)",
           "\tat jdk.internal.reflect.GeneratedMethodAccessor184.invoke(Unknown 
Source)",
           "\tat 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
           "\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)",
           "\tat 
org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1268)",
           "\tat 
org.jvnet.hk2.internal.MethodInterceptorHandler$MethodInvocationImpl.proceed(MethodInterceptorHandler.java:164)",
           "\tat 
org.apache.gravitino.server.web.filter.GravitinoInterceptionService$MetadataAuthorizationMethodInterceptor.invoke(GravitinoInterceptionService.java:159)",
           "\tat 
org.jvnet.hk2.internal.MethodInterceptorHandler.invoke(MethodInterceptorHandler.java:97)",
           "\tat 
org.apache.gravitino.server.web.rest.PermissionOperations_$$_jvst6e2_b.grantPrivilegeToRole(PermissionOperations_$$_jvst6e2_b.java)",
           "\tat jdk.internal.reflect.GeneratedMethodAccessor136.invoke(Unknown 
Source)",
           "\tat 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
           "\tat java.base/java.lang.reflect.Method.invoke(Method.java:569)",
           "\tat 
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)",
           "\tat 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)",
           "\tat 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)",
           "\tat 
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)",
           "\tat 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)",
           "\tat 
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)",
           "\tat 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)",
           "\tat 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)",
           "\tat 
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)",
           "\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)",
           "\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)",
           "\tat org.glassfish.jersey.internal.Errors.process(Errors.java:292)",
           "\tat org.glassfish.jersey.internal.Errors.process(Errors.java:274)",
           "\tat org.glassfish.jersey.internal.Errors.process(Errors.java:244)",
           "\tat 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)",
           "\tat 
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)",
           "\tat 
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)",
           "\tat 
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)",
           "\tat 
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)",
           "\tat 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)",
           "\tat 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)",
           "\tat 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)",
           "\tat 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)",
           "\tat 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)",
           "\tat 
org.apache.gravitino.server.authentication.AuthenticationFilter.lambda$doFilter$0(AuthenticationFilter.java:89)",
           "\tat 
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)",
           "\tat java.base/javax.security.auth.Subject.doAs(Subject.java:439)",
           "\tat 
org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:44)",
           "\tat 
org.apache.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:86)",
           "\tat 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)",
           "\tat 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)",
           "\tat 
org.apache.gravitino.server.web.VersioningFilter.doFilter(VersioningFilter.java:111)",
           "\tat 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)",
           "\tat 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)",
           "\tat 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)",
           "\tat 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)",
           "\tat 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)",
           "\tat 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)",
           "\tat 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)",
           "\tat 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)",
           "\tat 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)",
           "\tat 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)",
           "\tat 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)",
           "\tat 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)",
           "\tat 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)",
           "\tat 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)",
           "\tat 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)",
           "\tat 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)",
           "\tat 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)",
           "\tat 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)",
           "\tat org.eclipse.jetty.server.Server.handle(Server.java:516)",
           "\tat 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)",
           "\tat 
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)",
           "\tat 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)",
           "\tat 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)",
           "\tat 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)",
           "\tat 
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)",
           "\tat 
org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)",
           "\tat 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)",
           "\tat 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)",
           "\tat 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)",
           "\tat 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)",
           "\tat 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)",
           "\tat 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)",
           "\tat 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)",
           "\tat java.base/java.lang.Thread.run(Thread.java:840)",
           "Caused by: java.lang.UnsupportedOperationException: Don't support 
securable object type: TAG",
           "\tat 
org.apache.gravitino.cache.ReverseIndexRules.lambda$static$4(ReverseIndexRules.java:141)",
           "\tat 
com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422)",
           "\tat 
org.apache.gravitino.cache.ReverseIndexRules.lambda$static$5(ReverseIndexRules.java:83)",
           "\tat 
org.apache.gravitino.cache.ReverseIndexCache.indexEntity(ReverseIndexCache.java:120)",
           "\tat 
org.apache.gravitino.cache.CaffeineEntityCache.syncEntitiesToCache(CaffeineEntityCache.java:379)",
           "\tat 
org.apache.gravitino.cache.CaffeineEntityCache.lambda$put$13(CaffeineEntityCache.java:308)",
           "\tat 
org.apache.gravitino.cache.SegmentedLock.withLock(SegmentedLock.java:89)",
           "\tat 
org.apache.gravitino.cache.CaffeineEntityCache.put(CaffeineEntityCache.java:304)",
           "\tat 
org.apache.gravitino.storage.relational.RelationalEntityStore.lambda$get$0(RelationalEntityStore.java:143)",
           "\tat 
org.apache.gravitino.cache.SegmentedLock.withLockAndThrow(SegmentedLock.java:143)",
           "\tat 
org.apache.gravitino.cache.CaffeineEntityCache.withCacheLock(CaffeineEntityCache.java:341)",
           "\tat 
org.apache.gravitino.storage.relational.RelationalEntityStore.get(RelationalEntityStore.java:134)",
           "\tat 
org.apache.gravitino.authorization.GravitinoAuthorizer.handleRolePrivilegeChange(GravitinoAuthorizer.java:141)",
           "\t... 87 more"
       ]
   }
   ```
   
   ### Error message and/or stacktrace
   
   see above
   
   ### How to reproduce
   
   1. (service admin user) create a metalake, a role and a tag
   2. (the metalake owner) grant APPLY_TAG ALLOW privileges to the role on the 
securableObjects tag
   
   ### Additional context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to