1

I'm setting up a Solr server using Solr 4.6.1.

When I start up the server (sudo /etc/init.d/solr start), I get an "HTTP ERROR 503" when I try to reach the web interface, and the errors below in solr.log:

INFO  - 2014-02-25 14:16:44.006; org.apache.solr.core.CorePropertiesLocator; Looking for core definitions underneath /opt/solr/indexes
ERROR - 2014-02-25 14:16:44.032; org.apache.solr.servlet.SolrDispatchFilter; Could not start Solr. Check solr/home property and the logs
ERROR - 2014-02-25 14:16:44.088; org.apache.solr.common.SolrException; null:java.lang.NullPointerException
        at org.apache.solr.core.CorePropertiesLocator.discoverUnder(CorePropertiesLocator.java:121)
        at org.apache.solr.core.CorePropertiesLocator.discoverUnder(CorePropertiesLocator.java:130)
        at org.apache.solr.core.CorePropertiesLocator.discover(CorePropertiesLocator.java:113)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:226)
        at org.apache.solr.servlet.SolrDispatchFilter.createCoreContainer(SolrDispatchFilter.java:177)
        at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:127)
        at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:119)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:719)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:609)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96)
        at org.eclipse.jetty.server.Server.doStart(Server.java:280)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1259)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1182)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:473)
        at org.eclipse.jetty.start.Main.start(Main.java:615)
        at org.eclipse.jetty.start.Main.main(Main.java:96)

INFO  - 2014-02-25 14:16:44.098; org.apache.solr.servlet.SolrDispatchFilter; SolrDispatchFilter.init() done
INFO  - 2014-02-25 14:16:44.312; org.eclipse.jetty.server.AbstractConnector; Started SocketConnector@0.0.0.0:8983

When checking list of processes, solr is well present :

/usr/bin/java -Dsolr.solr.home=/opt/solr/current/solr -DcoreRootDirectory=/opt/solr/indexes -Xmx1024m -DsharedLib=/opt/solr/sharedLib -Djetty.logs=/var/log/solr -Djetty.home=/opt/solr/current -Djava.io.tmpdir=/tmp -jar /opt/solr/current/start.jar --daemon

Any idea what would be the possible cause?

PapelPincel
  • 4,255
  • 6
  • 39
  • 49
  • Does solr properly start with java -jar start.jar? If so, you might want to have a look at http://stackoverflow.com/a/2150888/158328 – D_K Feb 25 '14 at 15:03
  • @D_K : checked the process list and updated my question with the command running solr (see above) – PapelPincel Feb 25 '14 at 15:33
  • It looks like , its unable to find the core definition in the /opt/sor/indexes folder, is the definition of the cores available in that folder ? – Rocky Feb 25 '14 at 17:39
  • @Rocky /opt/solr/indexes folder is empty. – PapelPincel Feb 25 '14 at 18:30
  • That folder should have the conf and data folder present ... Also does solr.xml have the definition of the various cores ? conf will have the schema.xml and solrconfig.xml which is required for starting up of solr. Check the original solr distribution for the folder setup – Rocky Feb 26 '14 at 05:16
  • You move to this path: "/opt/solr/current/" before you start solr. -1- cd /opt/solr/current/ -2- java -jar start.jar .... – cguzel Feb 26 '14 at 09:10
  • solved ! -> sudo chown -R solr:solr /opt/solr/indexes/ – PapelPincel Feb 26 '14 at 11:39

1 Answers1

0

Running the following command solved the issue:

sudo chown -R solr:solr /opt/solr/indexes/ 

The directory is a mount point of an attached volume (Amazon EBS).

Before running the command, directory rights looked like :

$ sudo ls -al /opt/solr/indexes/
total 24
drwxr-x--- 3 solr solr  4096 Feb 26 09:25 .
drwxr-xr-x 5 solr solr  4096 Feb 26 09:33 ..
drwx------ 2 root root 16384 Feb 26 09:25 lost+found

After running the chown command :

$ sudo ls -al /opt/solr/indexes/
total 24
drwxr-x--- 3 solr solr  4096 Feb 26 09:25 .
drwxr-xr-x 5 solr solr  4096 Feb 26 09:33 ..
drwx------ 2 solr solr 16384 Feb 26 09:25 lost+found

The only difference I could spot here is the owner/group of lost+found directory, I'm still looking for an explanation

PapelPincel
  • 4,255
  • 6
  • 39
  • 49