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

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   ```
   curl -X POST -H "Accept: application/vnd.gravitino.v1+json" -H 
"Content-Type: application/json" -d '{
   "name": "example_topic_99",
   "comment": "This is an example topic 99",
   "properties": {
   "partition-count": "3",
   "replication-factor": 1
   }}' 
http://ae68c1d2b596b4d0ebf2ea7902c0e2e7-239867120.ap-northeast-1.elb.amazonaws.com:8090/api/metalakes/test/catalogs/k2/schemas/default/topics
   
   {"code":1003,"type":"NoSuchTopicException","message":"Failed to operate 
topic(s) [example_topic_99] operation [CREATE] under schema [default], reason 
[Topic test.k2.default.example_topic_99 does not 
exist]","stack":["com.datastrato.gravitino.exceptions.NoSuchTopicException: 
Topic test.k2.default.example_topic_99 does not exist","\tat 
com.datastrato.gravitino.catalog.kafka.KafkaCatalogOperations.loadTopic(KafkaCatalogOperations.java:210)","\tat
 
com.datastrato.gravitino.catalog.TopicOperationDispatcher.lambda$createTopic$8(TopicOperationDispatcher.java:155)","\tat
 
com.datastrato.gravitino.catalog.CatalogManager$CatalogWrapper.lambda$doWithTopicOps$3(CatalogManager.java:148)","\tat
 
com.datastrato.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:86)","\tat
 
com.datastrato.gravitino.catalog.CatalogManager$CatalogWrapper.doWithTopicOps(CatalogManager.java:143)","\tat
 
com.datastrato.gravitino.catalog.TopicOperationDispatcher.lambda$createTopic$9(TopicOperationD
 ispatcher.java:155)","\tat 
com.datastrato.gravitino.catalog.OperationDispatcher.doWithCatalog(OperationDispatcher.java:115)","\tat
 
com.datastrato.gravitino.catalog.TopicOperationDispatcher.createTopic(TopicOperationDispatcher.java:153)","\tat
 
com.datastrato.gravitino.catalog.TopicNormalizeDispatcher.createTopic(TopicNormalizeDispatcher.java:70)","\tat
 
com.datastrato.gravitino.listener.TopicEventDispatcher.createTopic(TopicEventDispatcher.java:132)","\tat
 
com.datastrato.gravitino.server.web.rest.TopicOperations.lambda$createTopic$2(TopicOperations.java:126)","\tat
 
com.datastrato.gravitino.lock.TreeLockUtils.doWithTreeLock(TreeLockUtils.java:49)","\tat
 
com.datastrato.gravitino.server.web.rest.TopicOperations.lambda$createTopic$3(TopicOperations.java:122)","\tat
 java.security.AccessController.doPrivileged(Native Method)","\tat 
javax.security.auth.Subject.doAs(Subject.java:422)","\tat 
com.datastrato.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:39)","\tat
 com.datastrato.gravit
 ino.server.web.Utils.doAs(Utils.java:135)","\tat 
com.datastrato.gravitino.server.web.rest.TopicOperations.createTopic(TopicOperations.java:108)","\tat
 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)","\tat 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)","\tat
 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat
 java.lang.reflect.Method.invoke(Method.java:498)","\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(J
 avaResourceMethodDispatcherProvider.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.ja
 va: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
 
com.datastrato.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:73)","\tat
 org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)","\tat 
org.eclipse.jetty.ser
 vlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)","\tat 
com.datastrato.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(Cont
 extHandler.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(Http
 Channel.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(Queued
 ThreadPool.java:1034)","\tat java.lang.Thread.run(Thread.java:750)","Caused 
by: java.util.concurrent.ExecutionException: 
org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server 
does not host this topic-partition.","\tat 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)","\tat
 java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)","\tat 
org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:165)","\tat
 
com.datastrato.gravitino.catalog.kafka.KafkaCatalogOperations.loadTopic(KafkaCatalogOperations.java:199)","\t...
 83 more","Caused by: 
org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server 
does not host this topic-partition."]}
   ```
   
   ### Error message and/or stacktrace
   
   Logs in gravitino:
   ```
   2024-07-16 07:44:12.911 INFO [Gravitino-webserver-43] 
[com.datastrato.gravitino.server.web.rest.TopicOperations.createTopic(TopicOperations.java:106)]
 - Received create topic request: test.k2.default
   2024-07-16 07:44:12.913 INFO [Gravitino-webserver-43] 
[com.datastrato.gravitino.server.web.rest.TopicOperations.lambda$createTopic$3(TopicOperations.java:111)]
 - Creating topic under schema: test.k2.default.example_topic_99
   2024-07-16 07:44:12.916 INFO [kafka-admin-client-thread | 
gravitino.v1.uid3781668427208118404-test.k2] 
[org.apache.kafka.clients.NetworkClient.handleDisconnections(NetworkClient.java:937)]
 - [AdminClient clientId=gravitino.v1.uid3781668427208118404-test.k2] Node 1 
disconnected.
   2024-07-16 07:44:12.954 INFO [Gravitino-webserver-43] 
[com.datastrato.gravitino.catalog.kafka.KafkaCatalogOperations.createTopic(KafkaCatalogOperations.java:244)]
 - Created topic test.k2.default.example_topic_99[id: 3TmoDlEzTT-CX0YnPZpqPg] 
with 3 partitions and replication factor 1
   2024-07-16 07:44:12.954 WARN [Gravitino-webserver-43] 
[com.datastrato.gravitino.StringIdentifier.newPropertiesWithId(StringIdentifier.java:114)]
 - Property gravitino.identifier:gravitino.v1.uid4201916465216404837 already 
existed in the properties, this is unexpected, we will ignore adding the 
identifier to the properties
   2024-07-16 07:44:12.959 WARN [Gravitino-webserver-43] 
[com.datastrato.gravitino.server.web.rest.ExceptionHandlers$TopicExceptionHandler.handle(ExceptionHandlers.java:424)]
 - Failed to operate topic(s) [example_topic_99] operation [CREATE] under 
schema [default], reason [Topic test.k2.default.example_topic_99 does not exist]
   com.datastrato.gravitino.exceptions.NoSuchTopicException: Topic 
test.k2.default.example_topic_99 does not exist
           at 
com.datastrato.gravitino.catalog.kafka.KafkaCatalogOperations.loadTopic(KafkaCatalogOperations.java:210)
 ~[?:?]
           at 
com.datastrato.gravitino.catalog.TopicOperationDispatcher.lambda$createTopic$8(TopicOperationDispatcher.java:155)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.catalog.CatalogManager$CatalogWrapper.lambda$doWithTopicOps$3(CatalogManager.java:148)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:86)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.catalog.CatalogManager$CatalogWrapper.doWithTopicOps(CatalogManager.java:143)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.catalog.TopicOperationDispatcher.lambda$createTopic$9(TopicOperationDispatcher.java:155)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.catalog.OperationDispatcher.doWithCatalog(OperationDispatcher.java:115)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.catalog.TopicOperationDispatcher.createTopic(TopicOperationDispatcher.java:153)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.catalog.TopicNormalizeDispatcher.createTopic(TopicNormalizeDispatcher.java:70)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.listener.TopicEventDispatcher.createTopic(TopicEventDispatcher.java:132)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.server.web.rest.TopicOperations.lambda$createTopic$2(TopicOperations.java:126)
 ~[gravitino-server-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.lock.TreeLockUtils.doWithTreeLock(TreeLockUtils.java:49)
 ~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.server.web.rest.TopicOperations.lambda$createTopic$3(TopicOperations.java:122)
 ~[gravitino-server-0.6.0-SNAPSHOT.jar:?]
           at java.security.AccessController.doPrivileged(Native Method) 
~[?:1.8.0_342]
           at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_342]
           at 
com.datastrato.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:39) 
~[gravitino-core-0.6.0-SNAPSHOT.jar:?]
           at com.datastrato.gravitino.server.web.Utils.doAs(Utils.java:135) 
~[gravitino-server-0.6.0-SNAPSHOT.jar:?]
           at 
com.datastrato.gravitino.server.web.rest.TopicOperations.createTopic(TopicOperations.java:108)
 ~[gravitino-server-0.6.0-SNAPSHOT.jar:?]
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.8.0_342]
           at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_342]
           at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_342]
           at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_342]
           at 
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256) 
~[jersey-server-2.41.jar:?]
           at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) 
~[jersey-common-2.41.jar:?]
           at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) 
~[jersey-common-2.41.jar:?]
           at org.glassfish.jersey.internal.Errors.process(Errors.java:292) 
~[jersey-common-2.41.jar:?]
           at org.glassfish.jersey.internal.Errors.process(Errors.java:274) 
~[jersey-common-2.41.jar:?]
           at org.glassfish.jersey.internal.Errors.process(Errors.java:244) 
~[jersey-common-2.41.jar:?]
           at 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
 ~[jersey-common-2.41.jar:?]
           at 
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235) 
~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
 ~[jersey-server-2.41.jar:?]
           at 
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) 
~[jersey-container-servlet-core-2.41.jar:?]
           at 
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) 
~[jersey-container-servlet-core-2.41.jar:?]
           at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
 ~[jersey-container-servlet-core-2.41.jar:?]
           at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311)
 ~[jersey-container-servlet-core-2.41.jar:?]
           at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
 ~[jersey-container-servlet-core-2.41.jar:?]
           at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) 
~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
           at 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
 ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217]
           at 
com.datastrato.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:73)
 ~[gravitino-server-common-0.6.0-SNAPSHOT.jar:?]
   
   ```
   
   ### How to reproduce
   
   1. Helm install Kafka on K8s cluster
   2. Create messaging catalog as following:
   <img width="1366" alt="image" 
src="https://github.com/user-attachments/assets/ead20418-db20-4d2b-92fa-4e77341a34fd";>
   3. Create topic in default schema
   
   ```
   curl -X POST -H "Accept: application/vnd.gravitino.v1+json" -H 
"Content-Type: application/json" -d '{
   "name": "example_topic_99",
   "comment": "This is an example topic 99",
   "properties": {
   "partition-count": "3",
   "replication-factor": 1
   }}' 
http://ae68c1d2b596b4d0ebf2ea7902c0e2e7-239867120.ap-northeast-1.elb.amazonaws.com:8090/api/metalakes/test/catalogs/k2/schemas/default/topics
   ```
   
   ### 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