helong001 opened a new issue, #7398: URL: https://github.com/apache/gravitino/issues/7398
### Version main branch ### Describe what's wrong Gravitino fails to initialize S3FileIO when using the dynamic configuration for an Iceberg catalog with org.apache.iceberg.aws.s3.S3FileIO. It throws a NoClassDefFoundError due to missing AWS SDK classes. ### Error message and/or stacktrace ## Error from web ui  ## Error from pod logs ```java 2025-06-15 16:08:22 INFO [Gravitino-webserver-44] CatalogOperations:97 - List 3 catalogs info under metalake: test 2025-06-15 16:08:24 INFO [Gravitino-webserver-38] CatalogOperations:222 - Received load catalog request for catalog: test.CatalogDynamic 2025-06-15 16:08:24 INFO [Gravitino-webserver-48] SchemaOperations:79 - Received list schema request for catalog: test.CatalogDynamic 2025-06-15 16:08:24 INFO [Gravitino-webserver-38] CatalogOperations:227 - Catalog loaded: test.CatalogDynamic 2025-06-15 16:08:24 INFO [Gravitino-webserver-48] IcebergCatalogUtil:179 - Load catalog backend of JDBC 2025-06-15 16:08:24 INFO [Gravitino-webserver-48] CatalogUtil:328 - Loading custom FileIO implementation: org.apache.iceberg.aws.s3.S3FileIO 2025-06-15 16:08:24 WARN [Gravitino-webserver-48] ExceptionHandlers:267 - Failed to operate schema(s) operation [LIST] under catalog [CatalogDynamic], reason [Cannot initialize FileIO implementation org.apache.iceberg.aws.s3.S3FileIO: Cannot find constructor for interface org.apache.iceberg.io.FileIO Missing org.apache.iceberg.aws.s3.S3FileIO [java.lang.NoClassDefFoundError: software/amazon/awssdk/services/s3/model/S3Exception]] java.lang.IllegalArgumentException: Cannot initialize FileIO implementation org.apache.iceberg.aws.s3.S3FileIO: Cannot find constructor for interface org.apache.iceberg.io.FileIO Missing org.apache.iceberg.aws.s3.S3FileIO [java.lang.NoClassDefFoundError: software/amazon/awssdk/services/s3/model/S3Exception] at org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:338) ~[?:?] at org.apache.iceberg.jdbc.JdbcCatalog.initialize(JdbcCatalog.java:131) ~[?:?] at org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadJdbcCatalog(IcebergCatalogUtil.java:138) ~[?:?] at org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:186) ~[?:?] at org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.<init>(IcebergCatalogWrapper.java:89) ~[?:?] at org.apache.gravitino.catalog.lakehouse.iceberg.IcebergCatalogOperations.initialize(IcebergCatalogOperations.java:115) ~[?:?] at org.apache.gravitino.connector.BaseCatalog.ops(BaseCatalog.java:172) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.asSchemas(CatalogManager.java:254) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.lambda$doWithSchemaOps$0(CatalogManager.java:147) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:86) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.doWithSchemaOps(CatalogManager.java:145) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaOperationDispatcher.lambda$listSchemas$1(SchemaOperationDispatcher.java:82) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.OperationDispatcher.doWithCatalog(OperationDispatcher.java:99) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaOperationDispatcher.lambda$listSchemas$2(SchemaOperationDispatcher.java:80) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.lock.TreeLockUtils.doWithTreeLock(TreeLockUtils.java:49) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaOperationDispatcher.listSchemas(SchemaOperationDispatcher.java:76) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.hook.SchemaHookDispatcher.listSchemas(SchemaHookDispatcher.java:54) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaNormalizeDispatcher.listSchemas(SchemaNormalizeDispatcher.java:48) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.listener.SchemaEventDispatcher.listSchemas(SchemaEventDispatcher.java:77) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.server.web.rest.SchemaOperations.lambda$listSchemas$0(SchemaOperations.java:85) ~[gravitino-server-1.0.0-SNAPSHOT.jar:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) ~[?:?] at java.base/javax.security.auth.Subject.doAs(Subject.java:439) ~[?:?] at org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:39) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.server.web.Utils.doAs(Utils.java:198) ~[gravitino-server-common-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.server.web.rest.SchemaOperations.listSchemas(SchemaOperations.java:81) ~[gravitino-server-1.0.0-SNAPSHOT.jar:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] 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 org.apache.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:86) ~[gravitino-server-common-1.0.0-SNAPSHOT.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.apache.gravitino.server.web.VersioningFilter.doFilter(VersioningFilter.java:111) ~[gravitino-server-1.0.0-SNAPSHOT.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[jetty-security-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at java.base/java.lang.Thread.run(Thread.java:833) [?:?] Caused by: java.lang.NoSuchMethodException: Cannot find constructor for interface org.apache.iceberg.io.FileIO Missing org.apache.iceberg.aws.s3.S3FileIO [java.lang.NoClassDefFoundError: software/amazon/awssdk/services/s3/model/S3Exception] at org.apache.iceberg.common.DynConstructors.buildCheckedException(DynConstructors.java:256) ~[?:?] at org.apache.iceberg.common.DynConstructors.access$200(DynConstructors.java:32) ~[?:?] at org.apache.iceberg.common.DynConstructors$Builder.buildChecked(DynConstructors.java:226) ~[?:?] at org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:335) ~[?:?] ... 90 more Suppressed: java.lang.NoClassDefFoundError: software/amazon/awssdk/services/s3/model/S3Exception at java.base/java.lang.Class.forName0(Native Method) ~[?:?] at java.base/java.lang.Class.forName(Class.java:467) ~[?:?] at org.apache.iceberg.common.DynConstructors$Builder.impl(DynConstructors.java:151) ~[?:?] at org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:334) ~[?:?] at org.apache.iceberg.jdbc.JdbcCatalog.initialize(JdbcCatalog.java:131) ~[?:?] at org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadJdbcCatalog(IcebergCatalogUtil.java:138) ~[?:?] at org.apache.gravitino.iceberg.common.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:186) ~[?:?] at org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.<init>(IcebergCatalogWrapper.java:89) ~[?:?] at org.apache.gravitino.catalog.lakehouse.iceberg.IcebergCatalogOperations.initialize(IcebergCatalogOperations.java:115) ~[?:?] at org.apache.gravitino.connector.BaseCatalog.ops(BaseCatalog.java:172) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.asSchemas(CatalogManager.java:254) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.lambda$doWithSchemaOps$0(CatalogManager.java:147) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:86) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.doWithSchemaOps(CatalogManager.java:145) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaOperationDispatcher.lambda$listSchemas$1(SchemaOperationDispatcher.java:82) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.OperationDispatcher.doWithCatalog(OperationDispatcher.java:99) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaOperationDispatcher.lambda$listSchemas$2(SchemaOperationDispatcher.java:80) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.lock.TreeLockUtils.doWithTreeLock(TreeLockUtils.java:49) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaOperationDispatcher.listSchemas(SchemaOperationDispatcher.java:76) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.hook.SchemaHookDispatcher.listSchemas(SchemaHookDispatcher.java:54) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.catalog.SchemaNormalizeDispatcher.listSchemas(SchemaNormalizeDispatcher.java:48) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.listener.SchemaEventDispatcher.listSchemas(SchemaEventDispatcher.java:77) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.server.web.rest.SchemaOperations.lambda$listSchemas$0(SchemaOperations.java:85) ~[gravitino-server-1.0.0-SNAPSHOT.jar:?] at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) ~[?:?] at java.base/javax.security.auth.Subject.doAs(Subject.java:439) ~[?:?] at org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:39) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.server.web.Utils.doAs(Utils.java:198) ~[gravitino-server-common-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.server.web.rest.SchemaOperations.listSchemas(SchemaOperations.java:81) ~[gravitino-server-1.0.0-SNAPSHOT.jar:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] 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 org.apache.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:86) ~[gravitino-server-common-1.0.0-SNAPSHOT.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.apache.gravitino.server.web.VersioningFilter.doFilter(VersioningFilter.java:111) ~[gravitino-server-1.0.0-SNAPSHOT.jar:?] at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[jetty-security-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[jetty-servlet-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [jetty-server-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [jetty-io-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [jetty-util-9.4.51.v20230217.jar:9.4.51.v20230217] at java.base/java.lang.Thread.run(Thread.java:833) [?:?] Caused by: java.lang.ClassNotFoundException: Class no found software.amazon.awssdk.services.s3.model.S3Exception at org.apache.gravitino.utils.IsolatedClassLoader$CustomURLClassLoader.loadClass(IsolatedClassLoader.java:175) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] ... 94 more Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.services.s3.model.S3Exception at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?] at org.apache.gravitino.utils.IsolatedClassLoader$CustomURLClassLoader.doLoadClass(IsolatedClassLoader.java:203) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at org.apache.gravitino.utils.IsolatedClassLoader$CustomURLClassLoader.loadClass(IsolatedClassLoader.java:173) ~[gravitino-core-1.0.0-SNAPSHOT.jar:?] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] ... 94 more ``` ### How to reproduce ## Deployment Context: ```yaml mysql: ## @param mysql.enabled Deploy MySQL container(s) ## enabled: true envFrom: [] log4j2Properties: rootLoggerLevel: INFO auxService: ## Auxiliary service names, separate by ',' ## names: iceberg-rest icebergRest: ## Iceberg REST service classpath ## classpath: "iceberg-rest-server/libs, iceberg-rest-server/conf" ## Iceberg REST service host ## host: 0.0.0.0 ## Iceberg REST service http port ## httpPort: 9001 ## The backend Iceberg catalog for Iceberg REST service, it's recommended to change to hive or jdbc ## # catalogBackend: jdbc # Rest backend configs. additionalConfigItems: ## THE CONFIGURATION EXAMPLE FOR JDBC CATALOG BACKEND WITH S3 SUPPORT gravitino.iceberg-rest.io-impl: org.apache.iceberg.aws.s3.S3FileIO gravitino.iceberg-rest.s3-path-style-access: "true" gravitino.iceberg-rest.s3-endpoint: http://minio.lakehouse-dev.svc.cluster.local:9000 gravitino.iceberg-rest.s3-region: minio gravitino.iceberg-rest.s3-access-key-id: 7VHelVGI10YOwFSr2H17 gravitino.iceberg-rest.s3-secret-access-key: wZ3JUUjsrZovIMYfVxSi5K1a6aoYwlAT5GJ2MwqT # gravitino.iceberg-rest.catalog-backend: jdbc # gravitino.iceberg-rest.jdbc-driver: com.mysql.cj.jdbc.Driver # gravitino.iceberg-rest.uri: jdbc:mysql://gravitino-mysql.lakehouse-dev.svc.cluster.local:3306/gravitino # gravitino.iceberg-rest.jdbc-user: gravitino # gravitino.iceberg-rest.jdbc-password: gravitino # gravitino.iceberg-rest.jdbc-initialize: "true" # gravitino.iceberg-rest.warehouse: s3://lakehouse-dev-iceberg # gravitino.iceberg-rest.catalog-backend: jdbc # gravitino.iceberg-rest.jdbc-driver: org.postgresql.Driver # gravitino.iceberg-rest.uri: jdbc:postgresql://postgresql.db-dev.svc.cluster.local:5432/iceberg-catalog # gravitino.iceberg-rest.jdbc-user: xxx # gravitino.iceberg-rest.jdbc-password: xxx # gravitino.iceberg-rest.jdbc-initialize: "true" # gravitino.iceberg-rest.warehouse: s3://lakehouse-dev-iceberg gravitino.iceberg-rest.catalog-cache-eviction-interval-ms: "100000" gravitino.iceberg-rest.catalog-config-provider: dynamic-config-provider gravitino.iceberg-rest.gravitino-uri: http://gravitino.lakehouse-dev.svc.cluster.local:8090 gravitino.iceberg-rest.gravitino-metalake: test ``` ## CatalogDynamic config in web ui  ### 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]
