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

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   Create an hive table with duplicated name in a schema encounter 
SchemaAlreadyExistsException(hive3), response code is 500.
   The same operation in hive2 catalog, the exception is 
TableAlreadyExistsException, response code is 409.
   
   POST  
http://localhost:8090/api/metalakes/hive3_test2/catalogs/hive3/schemas/hr/tables
   ```
   {
       "code": 1002,
       "type": "RuntimeException",
       "message": "Failed to operate object [employees] operation [CREATE] 
under [hr], reason [Hive schema employees already exists in Hive Metastore]",
       "stack": [
           "org.apache.gravitino.exceptions.SchemaAlreadyExistsException: Hive 
schema employees already exists in Hive Metastore",
           "\tat 
org.apache.gravitino.hive.client.HiveExceptionConverter.toAlreadyExistsException(HiveExceptionConverter.java:226)",
           "\tat 
org.apache.gravitino.hive.client.HiveExceptionConverter.convertException(HiveExceptionConverter.java:156)",
           "\tat 
org.apache.gravitino.hive.client.HiveExceptionConverter.toGravitinoException(HiveExceptionConverter.java:118)",
           "\tat 
HIVE3//org.apache.gravitino.hive.client.HiveShimV3.invoke(HiveShimV3.java:440)",
           "\tat 
HIVE3//org.apache.gravitino.hive.client.HiveShimV3.createTable(HiveShimV3.java:297)",
           "\tat 
HIVE3//org.apache.gravitino.hive.client.HiveClientImpl.createTable(HiveClientImpl.java:112)",
           "\tat 
org.apache.gravitino.catalog.hive.HiveCatalogOperations.lambda$createTable$20(HiveCatalogOperations.java:614)",
           "\tat 
org.apache.gravitino.utils.ClientPoolImpl.run(ClientPoolImpl.java:59)",
           "\tat 
org.apache.gravitino.utils.ClientPoolImpl.run(ClientPoolImpl.java:51)",
           "\tat 
org.apache.gravitino.hive.CachedClientPool.run(CachedClientPool.java:98)",
           "\tat 
org.apache.gravitino.catalog.hive.HiveCatalogOperations.createTable(HiveCatalogOperations.java:612)",
           "\tat 
org.apache.gravitino.catalog.TableOperationDispatcher.lambda$internalCreateTable$25(TableOperationDispatcher.java:599)",
           "\tat 
org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.lambda$doWithTableOps$1(CatalogManager.java:160)",
           "\tat 
org.apache.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:86)",
           "\tat 
org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.doWithTableOps(CatalogManager.java:155)",
           "\tat 
org.apache.gravitino.catalog.TableOperationDispatcher.lambda$internalCreateTable$26(TableOperationDispatcher.java:597)",
           "\tat 
org.apache.gravitino.catalog.OperationDispatcher.doWithCatalog(OperationDispatcher.java:121)",
           "\tat 
org.apache.gravitino.catalog.TableOperationDispatcher.internalCreateTable(TableOperationDispatcher.java:594)",
           "\tat 
org.apache.gravitino.catalog.TableOperationDispatcher.lambda$createTable$5(TableOperationDispatcher.java:177)",
           "\tat 
org.apache.gravitino.lock.TreeLockUtils.doWithTreeLock(TreeLockUtils.java:49)",
           "\tat 
org.apache.gravitino.catalog.TableOperationDispatcher.createTable(TableOperationDispatcher.java:173)",
           "\tat 
org.apache.gravitino.hook.TableHookDispatcher.createTable(TableHookDispatcher.java:78)",
           "\tat 
org.apache.gravitino.catalog.TableNormalizeDispatcher.createTable(TableNormalizeDispatcher.java:78)",
           "\tat 
org.apache.gravitino.listener.TableEventDispatcher.createTable(TableEventDispatcher.java:136)",
           "\tat 
org.apache.gravitino.server.web.rest.TableOperations.lambda$createTable$1(TableOperations.java:141)",
           "\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.TableOperations.createTable(TableOperations.java:133)",
           "\tat jdk.internal.reflect.GeneratedMethodAccessor90.invoke(Unknown 
Source)",
           "\tat 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
           "\tat java.base/java.lang.reflect.Method.invoke(Method.java:568)",
           "\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: AlreadyExistsException(message:Table hive.hr.employees 
already exists)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_with_environment_context_result$create_table_with_environment_context_resultStandardScheme.read(ThriftHiveMetastore.java:54890)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_with_environment_context_result$create_table_with_environment_context_resultStandardScheme.read(ThriftHiveMetastore.java:54876)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$create_table_with_environment_context_result.read(ThriftHiveMetastore.java:54802)",
           "\tat 
HIVE3//org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:86)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_create_table_with_environment_context(ThriftHiveMetastore.java:1556)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.create_table_with_environment_context(ThriftHiveMetastore.java:1542)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.HiveMetaStoreClient.create_table_with_environment_context(HiveMetaStoreClient.java:2867)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:837)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:822)",
           "\tat 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
           "\tat 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)",
           "\tat 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
           "\tat java.base/java.lang.reflect.Method.invoke(Method.java:568)",
           "\tat 
HIVE3//org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:208)",
           "\tat HIVE3/jdk.proxy63/jdk.proxy63.$Proxy267.createTable(Unknown 
Source)",
           "\tat 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
           "\tat 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)",
           "\tat 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
           "\tat java.base/java.lang.reflect.Method.invoke(Method.java:568)",
           "\tat 
HIVE3//org.apache.gravitino.hive.client.HiveShimV3.invoke(HiveShimV3.java:438)",
           "\t... 95 more"
       ]
   }
   
   ```
   
   ### Error message and/or stacktrace
   
   N/A
   
   ### How to reproduce
   
   1. Create hive catalog for hive3
   2. Create an hive table with duplicated name in a schema
   
   ### 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