apache / gravitino

World's most powerful open data catalog for building a high-performance, geo-distributed and federated metadata lake.
https://gravitino.apache.org
Apache License 2.0
910 stars 292 forks source link

[Bug report] Gravitino server fail to start with Corretto JDK 17 #1639

Closed yuqi1129 closed 7 months ago

yuqi1129 commented 7 months ago

Describe what's wrong

image

Error message and/or stacktrace

The following are related messages in gravitino-server.out

WARNING: HK2 service reification failed for [org.glassfish.jersey.message.internal.DataSourceProvider] with an exception:
MultiException stack 1 of 2
java.lang.NoClassDefFoundError: javax/activation/DataSource
    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373)
    at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2555)
    at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1354)
    at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1350)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at org.jvnet.hk2.internal.Utilities.getAllConstructors(Utilities.java:1350)
    at org.jvnet.hk2.internal.Utilities.findProducerConstructor(Utilities.java:1293)
    at org.jvnet.hk2.internal.DefaultClassAnalyzer.getConstructor(DefaultClassAnalyzer.java:60)
    at org.glassfish.jersey.inject.hk2.JerseyClassAnalyzer.getConstructor(JerseyClassAnalyzer.java:124)
    at org.jvnet.hk2.internal.Utilities.getConstructor(Utilities.java:156)
    at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:105)
    at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:156)
    at org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:716)
    at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:670)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:442)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2300)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:106)
    at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1385)
    at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1380)
    at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1442)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1368)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1356)
    at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:135)
    at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
    at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:299)
    at org.glassfish.jersey.internal.inject.Providers.getProviders(Providers.java:133)
    at org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:246)
    at org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
    at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:353)
    at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4204)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:353)
    at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:296)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:261)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:154)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:339)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:632)
    at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:415)
    at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:750)
    at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
    at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
    at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:774)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:916)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    at org.eclipse.jetty.server.Server.start(Server.java:423)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
    at org.eclipse.jetty.server.Server.doStart(Server.java:387)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at com.datastrato.gravitino.server.web.JettyServer.start(JettyServer.java:169)
    at com.datastrato.gravitino.catalog.lakehouse.iceberg.IcebergRESTService.serviceStart(IcebergRESTService.java:88)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$null$7(AuxiliaryServiceManager.java:184)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$doWithClassLoader$4(AuxiliaryServiceManager.java:156)
    at com.datastrato.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:69)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.doWithClassLoader(AuxiliaryServiceManager.java:153)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$serviceStart$8(AuxiliaryServiceManager.java:184)
    at java.base/java.util.HashMap.forEach(HashMap.java:1421)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.serviceStart(AuxiliaryServiceManager.java:182)
    at com.datastrato.gravitino.GravitinoEnv.start(GravitinoEnv.java:171)
    at com.datastrato.gravitino.server.GravitinoServer.start(GravitinoServer.java:98)
    at com.datastrato.gravitino.server.GravitinoServer.main(GravitinoServer.java:120)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    ... 79 more
MultiException stack 2 of 2
java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(
    implementation=org.glassfish.jersey.message.internal.DataSourceProvider
    contracts={javax.ws.rs.ext.MessageBodyWriter,javax.ws.rs.ext.MessageBodyReader}
    scope=javax.inject.Singleton
    qualifiers={}
    descriptorType=CLASS
    descriptorVisibility=NORMAL
    metadata=
    rank=0
    loader=null
    proxiable=null
    proxyForSameScope=null
    analysisName=null
    id=118
    locatorId=0
    identityHashCode=1765350920
    reified=false)
    at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:681)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:442)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2300)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:106)
    at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1385)
    at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1380)
    at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1442)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1368)
    at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1356)
    at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:135)
    at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
    at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:299)
    at org.glassfish.jersey.internal.inject.Providers.getProviders(Providers.java:133)
    at org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:246)
    at org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
    at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:353)
    at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4204)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:353)
    at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
    at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:296)
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:261)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:154)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:339)
    at javax.servlet.GenericServlet.init(GenericServlet.java:244)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:632)
    at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:415)
    at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:750)
    at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
    at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310)
    at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:774)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:916)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    at org.eclipse.jetty.server.Server.start(Server.java:423)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
    at org.eclipse.jetty.server.Server.doStart(Server.java:387)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at com.datastrato.gravitino.server.web.JettyServer.start(JettyServer.java:169)
    at com.datastrato.gravitino.catalog.lakehouse.iceberg.IcebergRESTService.serviceStart(IcebergRESTService.java:88)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$null$7(AuxiliaryServiceManager.java:184)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$doWithClassLoader$4(AuxiliaryServiceManager.java:156)
    at com.datastrato.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:69)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.doWithClassLoader(AuxiliaryServiceManager.java:153)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$serviceStart$8(AuxiliaryServiceManager.java:184)
    at java.base/java.util.HashMap.forEach(HashMap.java:1421)
    at com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.serviceStart(AuxiliaryServiceManager.java:182)
    at com.datastrato.gravitino.GravitinoEnv.start(GravitinoEnv.java:171)
    at com.datastrato.gravitino.server.GravitinoServer.start(GravitinoServer.java:98)
    at com.datastrato.gravitino.server.GravitinoServer.main(GravitinoServer.java:120)

How to reproduce

➜ [/Users/yuqi] /Users/yuqi/.sdkman/candidates/java/current/bin/java -version openjdk version "17.0.8" 2023-07-18 LTS OpenJDK Runtime Environment Corretto-17.0.8.7.1 (build 17.0.8+7-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.8.7.1 (build 17.0.8+7-LTS, mixed mode, sharing)

And use the main to build distribution package and start gravitino server

Additional context

No response

jerryshao commented 7 months ago

@yuqi1129 can you please work on this, seems a serious issue.

yuqi1129 commented 7 months ago

This error information has existed for some time, When I update the package, it seems that everything is OK except for those information.