Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Solr version to 9.5.0 #56

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Upgrade Solr version to 9.5.0 #56

wants to merge 3 commits into from

Conversation

yvanzo
Copy link
Contributor

@yvanzo yvanzo commented Feb 23, 2024

While we were testing Solr 9.4.0 for SEARCH-685, Solr 9.5.0 has been released.

It’s still time to upgrade to it before switching to Solr 9 in production.

Reference: https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-9.html#solr-9-5

@yvanzo
Copy link
Contributor Author

yvanzo commented Feb 28, 2024

Starting from version 9.5.0, Solr has warnings about not finding the class DataSource. See logs below.

It isn’t related to the changes in mb-solr/pom.xml as it does occur even without these.

It seems to be related to our javax imports in MBXMLWriter and to their patch resolving SOLR-17089 in Solr 9.5.0.

However, there is no error and I have had no issue with indexing places and searching for places locally.
Thus, I still deployed it with the tag v3.4.2-52-g46ba374 to https://test.musicbrainz.org for further testing by everyone.

I wonder whether there is something wrong in our code or it might just be resolved in the future with SOLR-17069?

Logs

Starting server

Nothing unusual here, just providing full information.

Starting Solr
Java 17 detected. Enabled workaround for SOLR-16463
[0.001s][warning][pagesize] UseLargePages disabled, no large pages configured and available on the system.
CompileCommand: exclude com/github/benmanes/caffeine/cache/BoundedLocalCache.put bool exclude = true
WARNING: A command line option has enabled the Security Manager
WARNING: The Security Manager is deprecated and will be removed in a future release
2024-02-28 09:20:05.597 INFO  (main) [c: s: r: x: t:] o.e.j.s.Server jetty-10.0.19; built: 2023-12-15T20:38:32.477Z; git: 8492d1c78f122bb30cce20aecfa07e7283facd47; jvm 17.0.10+7
2024-02-28 09:20:05.932 WARN  (main) [c: s: r: x: t:] o.e.j.u.DeprecationWarning Using @Deprecated Class org.eclipse.jetty.servlet.listener.ELContextCleaner
2024-02-28 09:20:05.962 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider Using logger factory org.apache.logging.slf4j.Log4jLoggerFactory
2024-02-28 09:20:05.969 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider  ___      _       Welcome to Apache Solr™ version 9.5.0
2024-02-28 09:20:05.969 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider / __| ___| |_ _   Starting in standalone mode on port 8983
2024-02-28 09:20:05.969 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider \__ \/ _ \ | '_|  Install dir: /opt/solr-9.5.0-slim
2024-02-28 09:20:05.969 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider |___/\___/_|_|    Start time: 2024-02-28T09:20:05.969698752Z
2024-02-28 09:20:05.972 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider Solr started with "-XX:+CrashOnOutOfMemoryError" that will crash on any OutOfMemoryError exception. The cause of the OOME will be logged in the crash file at the following path: /var/solr/logs/jvm_crash_13.log
2024-02-28 09:20:05.999 INFO  (main) [c: s: r: x: t:] o.a.s.s.CoreContainerProvider Solr Home: /var/solr/data (source: system property: solr.solr.home)
2024-02-28 09:20:06.021 INFO  (main) [c: s: r: x: t:] o.a.s.c.SolrXmlConfig solr.xml not found in SOLR_HOME, using built-in default
2024-02-28 09:20:06.021 INFO  (main) [c: s: r: x: t:] o.a.s.c.SolrXmlConfig Loading solr.xml from /opt/solr-9.5.0-slim/server/solr/solr.xml
2024-02-28 09:20:06.068 INFO  (main) [c: s: r: x: t:] o.a.s.c.SolrResourceLoader Added 2 libs to classloader, from paths: [/opt/solr-9.5.0-slim/lib]
2024-02-28 09:20:06.797 INFO  (main) [c: s: r: x: t:] o.a.s.u.t.SimplePropagator Always-on trace id generation enabled.
2024-02-28 09:20:07.058 WARN  (main) [c: s: r: x: t:] o.a.s.u.StartupLoggingUtils Jetty request logging enabled. Will retain logs for last 3 days. See chapter "Configuring Logging" in reference guide for how to configure.
2024-02-28 09:20:07.060 WARN  (main) [c: s: r: x: t:] o.a.s.c.CoreContainer Not all security plugins configured!  authentication=disabled authorization=disabled.  Solr is only as secure as you make it. Consider configuring authentication/authorization before exposing Solr to users internal or external.  See https://s.apache.org/solrsecurity for more info
2024-02-28 09:20:07.263 INFO  (main) [c: s: r: x: t:] o.a.s.c.CorePropertiesLocator Found 16 core definitions underneath /var/solr/data
2024-02-28 09:20:07.263 INFO  (main) [c: s: r: x: t:] o.a.s.c.CorePropertiesLocator Cores are: [editor, recording, release-group, label, annotation, instrument, series, place, work, tag, release, artist, cdstub, area, url, event]

First warning (main)

Below is the first warning in logs, it is only one from the main process or thread.

2024-02-28 09:20:08.042 WARN  (main) [c: s: r: x: t:] o.g.j.i.Errors The following warnings have been detected: WARNING: HK2 service reification failed for [org.glassfish.jersey.message.internal.DataSourceProvider] with an exception:
MultiException stack 1 of 2
java.lang.NoClassDefFoundError: jakarta/activation/DataSource
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.base/java.lang.Class.getDeclaredConstructors(Unknown Source)
	at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1355)
	at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1351)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at org.jvnet.hk2.internal.Utilities.getAllConstructors(Utilities.java:1351)
	at org.jvnet.hk2.internal.Utilities.findProducerConstructor(Utilities.java:1294)
	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:157)
	at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:106)
	at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:165)
	at org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:719)
	at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:673)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2316)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1401)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1396)
	at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1458)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1384)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1372)
	at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:134)
	at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
	at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:308)
	at org.glassfish.jersey.internal.inject.Providers.getCustomProviders(Providers.java:152)
	at org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:219)
	at org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:366)
	at java.base/java.util.Arrays$ArrayList.forEach(Unknown Source)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:366)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:310)
	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:309)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:274)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:249)
	at org.apache.solr.core.CoreContainer.loadInternal(CoreContainer.java:1154)
	at org.apache.solr.core.CoreContainer.load(CoreContainer.java:762)
	at org.apache.solr.servlet.CoreContainerProvider.createCoreContainer(CoreContainerProvider.java:427)
	at org.apache.solr.servlet.CoreContainerProvider.init(CoreContainerProvider.java:246)
	at org.apache.solr.servlet.CoreContainerProvider.contextInitialized(CoreContainerProvider.java:116)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
	at org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984)
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:221)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.server.Server.start(Server.java:470)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
	at org.eclipse.jetty.server.Server.doStart(Server.java:415)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1919)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.jetty.start.Main.invokeMain(Main.java:229)
	at org.eclipse.jetty.start.Main.start(Main.java:528)
	at org.eclipse.jetty.start.Main.main(Main.java:76)
Caused by: java.lang.ClassNotFoundException: jakarta.activation.DataSource
	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:460)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 89 more
	Suppressed: java.lang.ClassNotFoundException: jakarta.activation.DataSource
		at java.base/java.net.URLClassLoader.findClass(Unknown Source)
		at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:581)
		at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:484)
		... 90 more
MultiException stack 2 of 2
java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(
	implementation=org.glassfish.jersey.message.internal.DataSourceProvider
	contracts={jakarta.ws.rs.ext.MessageBodyReader,jakarta.ws.rs.ext.MessageBodyWriter}
	scope=jakarta.inject.Singleton
	qualifiers={}
	descriptorType=CLASS
	descriptorVisibility=NORMAL
	metadata=
	rank=0
	loader=null
	proxiable=null
	proxyForSameScope=null
	analysisName=null
	id=94
	locatorId=0
	identityHashCode=1521891844
	reified=false)
	at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:684)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2316)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1401)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1396)
	at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1458)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1384)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1372)
	at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:134)
	at org.glassfish.jersey.inject.hk2.ImmediateHk2Inje...

Server started

Nothing unusual here, just providing full information.

2024-02-28 09:20:08.120 INFO  (main) [c: s: r: x: t:] o.e.j.s.h.ContextHandler Started o.e.j.w.WebAppContext@5922ae77{solr-jetty-context.xml,/solr,file:///opt/solr-9.5.0-slim/server/solr-webapp/webapp/,AVAILABLE}{/opt/solr-9.5.0-slim/server/solr-webapp/webapp}
2024-02-28 09:20:08.130 INFO  (main) [c: s: r: x: t:] o.e.j.s.RequestLogWriter Opened /var/solr/logs/2024_02_28.request.log
2024-02-28 09:20:08.135 INFO  (main) [c: s: r: x: t:] o.e.j.s.AbstractConnector Started ServerConnector@61884cb1{HTTP/1.1, (http/1.1, h2c)}{0.0.0.0:8983}
2024-02-28 09:20:08.136 INFO  (main) [c: s: r: x: t:] o.e.j.s.Server Started Server@350ec41e{STARTING}[10.0.19,sto=0] @3723ms

Loading core (with warning)

Below I selected log lines about the core place as an example but similar messages and warning are logged for each core.

2024-02-28 09:20:10.363 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.c.SolrConfig Using Lucene MatchVersion: 9.0.0
2024-02-28 09:20:10.365 WARN  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.c.SolrConfig Ignored deprecated enableRemoteStreaming in config; use sys-prop
2024-02-28 09:20:10.371 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.s.IndexSchema Schema name=place
2024-02-28 09:20:10.399 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.s.IndexSchema Loaded schema place/1.5 with uniqueid field mbid
2024-02-28 09:20:10.409 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.c.CoreContainer Creating SolrCore 'place' using configuration from instancedir /var/solr/data/mycores/mbsssss/place, trusted=true
2024-02-28 09:20:10.410 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.c.SolrCore Opening new SolrCore at [/var/solr/data/mycores/mbsssss/place], dataDir=[/var/solr/data/data/place/]
2024-02-28 09:20:10.731 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.j.SolrRequestAuthorizer Creating a new SolrRequestAuthorizer
2024-02-28 09:20:10.739 WARN  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.g.j.i.Errors The following warnings have been detected: WARNING: HK2 service reification failed for [org.glassfish.jersey.message.internal.DataSourceProvider] with an exception:
MultiException stack 1 of 2
java.lang.NoClassDefFoundError: jakarta/activation/DataSource
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.base/java.lang.Class.getDeclaredConstructors(Unknown Source)
	at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1355)
	at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1351)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at org.jvnet.hk2.internal.Utilities.getAllConstructors(Utilities.java:1351)
	at org.jvnet.hk2.internal.Utilities.findProducerConstructor(Utilities.java:1294)
	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:157)
	at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:106)
	at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:165)
	at org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:719)
	at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:673)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2316)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1401)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1396)
	at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1458)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1384)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1372)
	at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:134)
	at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
	at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:308)
	at org.glassfish.jersey.internal.inject.Providers.getCustomProviders(Providers.java:152)
	at org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:219)
	at org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:366)
	at java.base/java.util.Arrays$ArrayList.forEach(Unknown Source)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:366)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:310)
	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:309)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:274)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:249)
	at org.apache.solr.core.SolrCore.lambda$new$2(SolrCore.java:1160)
	at org.apache.solr.jersey.JerseyAppHandlerCache.lambda$computeIfAbsent$0(JerseyAppHandlerCache.java:53)
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2688)
	at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source)
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2686)
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2669)
	at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
	at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
	at org.apache.solr.jersey.JerseyAppHandlerCache.computeIfAbsent(JerseyAppHandlerCache.java:53)
	at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1153)
	at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1057)
	at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1717)
	at org.apache.solr.core.CoreContainer.lambda$loadInternal$12(CoreContainer.java:1057)
	at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:212)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:299)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: jakarta.activation.DataSource
	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:460)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 59 more
	Suppressed: java.lang.ClassNotFoundException: jakarta.activation.DataSource
		at java.base/java.net.URLClassLoader.findClass(Unknown Source)
		at org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:581)
		at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:484)
		... 60 more
MultiException stack 2 of 2
java.lang.IllegalArgumentException: Errors were discovered while reifying SystemDescriptor(
	implementation=org.glassfish.jersey.message.internal.DataSourceProvider
	contracts={jakarta.ws.rs.ext.MessageBodyReader,jakarta.ws.rs.ext.MessageBodyWriter}
	scope=jakarta.inject.Singleton
	qualifiers={}
	descriptorType=CLASS
	descriptorVisibility=NORMAL
	metadata=
	rank=0
	loader=null
	proxiable=null
	proxyForSameScope=null
	analysisName=null
	id=94
	locatorId=9
	identityHashCode=2069477061
	reified=false)
	at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:684)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2316)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1401)
	at org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1396)
	at org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1458)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1384)
	at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1372)
	at org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:134)
	at org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
	at org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:308)
	at org.glassfish.jersey.internal.inject.Providers.getCustomProviders(Providers.java:152)
	at org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:219)
	at org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:366)
	at java.base/java.util.Arrays$ArrayList.forEach(Unknown Source)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:366)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:310)
	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:309)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:274)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:249)
	at org.apache.solr.core.SolrCore.lambda$new$2(SolrCore.java:1160)
	at org.apache.solr.jersey.JerseyAppHandlerCache.lambda$computeIfAbsent$0(JerseyAppHandlerCache.java:53)
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2688)
	at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source)
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2686)
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2669)
	at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
	at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
	at org.apache.solr.jersey.JerseyAppHandlerCache.computeIfAbsent(JerseyAppHandlerCache.java:53)
	at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1153)
	at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1057)
	at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1717)
	at org.apache.solr.core.CoreContainer.lambda$loadInternal$12(CoreContainer.java:1057)
	at com.codahale.metrics.InstrumentedExecutorServic...
2024-02-28 09:20:10.740 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.u.UpdateHandler Using UpdateLog implementation: org.apache.solr.update.UpdateLog
2024-02-28 09:20:10.740 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.u.UpdateLog Initializing UpdateLog: dataDir=/var/solr/data/data/place defaultSyncLevel=FLUSH numRecordsToKeep=100 maxNumLogsToKeep=10 numVersionBuckets=65536
2024-02-28 09:20:10.755 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.u.CommitTracker Hard AutoCommit: if uncommitted for 60000ms; 
2024-02-28 09:20:10.755 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.u.CommitTracker Soft AutoCommit: if uncommitted for 10000ms; 
2024-02-28 09:20:10.861 INFO  (coreLoadExecutor-11-thread-2) [c: s: r: x:place t:] o.a.s.r.ManagedResourceStorage File-based storage initialized to use dir: /var/solr/data/mycores/mbsssss/place/conf
2024-02-28 09:20:10.864 INFO  (searcherExecutor-45-thread-1-processing-place) [c: s: r: x:place t:] o.a.s.c.SolrCore Registered new searcher autowarm time: 0 ms

@yvanzo yvanzo marked this pull request as ready for review February 28, 2024 10:30
@mglubb
Copy link

mglubb commented Mar 5, 2024

@yvanzo the java.lang.NoClassDefFoundError: jakarta/activation/DataSource error can be suppressed by adding jakarta.activation-api-2.jar to server/lib/ext. Simply adding it as a dependency to the mb-solr pom didn't work for me.

@yvanzo
Copy link
Contributor Author

yvanzo commented Mar 5, 2024

@yvanzo the java.lang.NoClassDefFoundError: jakarta/activation/DataSource error can be suppressed by adding jakarta.activation-api-2.jar to server/lib/ext.

Thank you for this workaround. I’m not too sure if we are doing something wrong or if it is a regression from Solr 9.5.0 which resolves SOLR-17089. I’m trying to reach Solr users about it, and will report it upstream if confirmed as a regression.

We are also working on SolrCloud deployment with Ansible, so this isn’t the only issue to address for production release.

Simply adding it as a dependency to the mb-solr pom didn't work for me.

Neither for me.

Starting from Solr 9.5.0, the following innocuous but annoying warning
started to show up on server startup and when loading each core:

    java.lang.NoClassDefFoundError: jakarta/activation/DataSource

It hasn’t been determined exactly why, but it is likely related to the
changes made to resolve https://issues.apache.org/jira/browse/SOLR-17089
@yvanzo
Copy link
Contributor Author

yvanzo commented Apr 10, 2024

I previously tested adding Jakarta Activation API and/or its Angus implementation to the Project Object Model as follows:

            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>2.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.angus</groupId>
                <artifactId>angus-activation</artifactId>
                <version>2.0.2</version>
                <scope>runtime</scope>
            </dependency>

All tries have been unsuccessful, as the classes were just added into the mb-solr JAR which is apparently not loaded by Solr when it needs these. So for now I just added the commit e27f341 to follow the above suggestion and it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants