You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Joe Obernberger <jo...@gmail.com> on 2020/02/05 22:53:33 UTC

NoClassDefFoundError - Faceting on 8.2.0

Hi All - getting this error intermittently on a solr cloud cluster.  
Sometimes the heatmap generation works, sometimes not.  I tracked it 
down to some of the nodes are reporting this error:

null:java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.solr.search.facet.FacetHeatmap$PngHelper
	at org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:733)
	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:591)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:423)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:350)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:505)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
	at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:311)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:132)
	at org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:170)
	at org.eclipse.jetty.http2.HTTP2Connection.onFillable(HTTP2Connection.java:125)
	at org.eclipse.jetty.http2.HTTP2Connection$FillableCallback.succeeded(HTTP2Connection.java:348)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.solr.search.facet.FacetHeatmap$PngHelper
	at org.apache.solr.search.facet.FacetHeatmap.asPngBytes(FacetHeatmap.java:406)
	at org.apache.solr.search.facet.FacetHeatmap.formatCountsVal(FacetHeatmap.java:295)
	at org.apache.solr.search.facet.FacetHeatmap.access$500(FacetHeatmap.java:68)
	at org.apache.solr.search.facet.FacetHeatmap$FacetHeatmapProcessor.process(FacetHeatmap.java:251)
	at org.apache.solr.search.facet.FacetRequest.process(FacetRequest.java:401)
	at org.apache.solr.search.facet.FacetRequest.process(FacetRequest.java:392)
	at org.apache.solr.handler.component.SpatialHeatmapFacets.getHeatmapForField(SpatialHeatmapFacets.java:50)
	at org.apache.solr.request.SimpleFacets.getHeatmapCounts(SimpleFacets.java:1204)
	at org.apache.solr.handler.component.FacetComponent.getFacetCounts(FacetComponent.java:334)
	at org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:274)
	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:305)
	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2578)
	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:780)
	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:566)
	... 42 more

But that class is clearly present in the classpath in solr-core-8.2.0.jar.  Any idea how this is happening?
Thank you!

-Joe Obernberger


Re: NoClassDefFoundError - Faceting on 8.2.0

Posted by Erick Erickson <er...@gmail.com>.
My first guess is that you have multiple or out-of-date jars in your classpath on those machines.

Best,
Erick

> On Feb 5, 2020, at 5:53 PM, Joe Obernberger <jo...@gmail.com> wrote:
> 
> Hi All - getting this error intermittently on a solr cloud cluster.  Sometimes the heatmap generation works, sometimes not.  I tracked it down to some of the nodes are reporting this error:
> 
> null:java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.solr.search.facet.FacetHeatmap$PngHelper
> 	at org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:733)
> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:591)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:423)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:350)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1711)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1347)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1678)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1249)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
> 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> 	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:505)
> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
> 	at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:311)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:132)
> 	at org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:170)
> 	at org.eclipse.jetty.http2.HTTP2Connection.onFillable(HTTP2Connection.java:125)
> 	at org.eclipse.jetty.http2.HTTP2Connection$FillableCallback.succeeded(HTTP2Connection.java:348)
> 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> 	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)
> 	at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.solr.search.facet.FacetHeatmap$PngHelper
> 	at org.apache.solr.search.facet.FacetHeatmap.asPngBytes(FacetHeatmap.java:406)
> 	at org.apache.solr.search.facet.FacetHeatmap.formatCountsVal(FacetHeatmap.java:295)
> 	at org.apache.solr.search.facet.FacetHeatmap.access$500(FacetHeatmap.java:68)
> 	at org.apache.solr.search.facet.FacetHeatmap$FacetHeatmapProcessor.process(FacetHeatmap.java:251)
> 	at org.apache.solr.search.facet.FacetRequest.process(FacetRequest.java:401)
> 	at org.apache.solr.search.facet.FacetRequest.process(FacetRequest.java:392)
> 	at org.apache.solr.handler.component.SpatialHeatmapFacets.getHeatmapForField(SpatialHeatmapFacets.java:50)
> 	at org.apache.solr.request.SimpleFacets.getHeatmapCounts(SimpleFacets.java:1204)
> 	at org.apache.solr.handler.component.FacetComponent.getFacetCounts(FacetComponent.java:334)
> 	at org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:274)
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:305)
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2578)
> 	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:780)
> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:566)
> 	... 42 more
> 
> But that class is clearly present in the classpath in solr-core-8.2.0.jar.  Any idea how this is happening?
> Thank you!
> 
> -Joe Obernberger
>