I successfully added a Solr server to admin/config/search/search-api which is up and running. No error messages on its status page so far. "The Solr server could be reached." and "The Solr core could be accessed (latency: 48.8450990448 ms)." and "Configured Solr Version 7.3.0".

I added an Index to it, which is also running.

The problem I have: if I call admin/reports/status, I get a white screen saying "The website encountered an unexpected error. Please try again later." which corresponds with a php error: Drupal\search_api_solr\SearchApiSolrException: Solr endpoint http://my.solr.server:8993/ internal Solr server error (500). { "responseHeader":{ "status":500, "QTime":2}, "error":{ "trace":"java.lang.NullPointerException\n\tat

The Solr server log reports:

java.lang.NullPointerException
	at org.apache.solr.handler.admin.ShowFileRequestHandler.getAdminFileFromFileSystem(ShowFileRequestHandler.java:329)
	at org.apache.solr.handler.admin.ShowFileRequestHandler.showFromFileSystem(ShowFileRequestHandler.java:190)
	at org.apache.solr.handler.admin.ShowFileRequestHandler.handleRequestBody(ShowFileRequestHandler.java:134)
	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:195)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2503)
	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:517)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:384)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:330)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	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:190)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	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:530)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
	at java.lang.Thread.run(Thread.java:748)

All I understand is that some file request has failed. But which file could that be? I moved all the files that I got in config.zip onto the Solr server. If I disable the Solr server on Drupal side, I can reach admin/reports/status without an error message.

CommentFileSizeAuthor
#5 3118978-5.patch773 bytesSam152
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

kreatIL created an issue. See original summary.

kreatIL’s picture

Status: Active » Fixed

It turned out that the subfolder "conf" was not present inside /solr/data/[solr_core]/
Even if this folder is empty, Solr must obviously be able to access it.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

Sam152’s picture

I believe this is a bug that should be addressed. Throwing an exception in a requirements check means users don't actually get informed on what is wrong with their installation. It also breaks the whole status and config pages as you've already pointed out.

Sam152’s picture

FileSize
773 bytes

This did the trick for me.

kreatIL’s picture

Category: Support request » Bug report

Thx for pointing this out, @Sam152. I'll ask the maintainers to re-open this issue.

mkalkbrenner’s picture

Version: 8.x-3.9 » 4.x-dev
Component: Miscellaneous » Code
Status: Closed (fixed) » Needs review

  • mkalkbrenner committed 3449cbc on 4.x authored by Sam152
    Issue #3118978 by Sam152, kreatIL, mkalkbrenner: Error 500 thrown by...
mkalkbrenner’s picture

Status: Needs review » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.