Search code examples
ruby-on-rails-3sunspot-railssunspot-solr

Why can't I stop Solr from running?


The sunspot_solr version that I am using is 1.3.3.

I am using sunspot_solr gem to start and stop a local instance of Solr. I use the following command to start it:

rake sunspot:solr:start

and the following command to stop it:

rake sunspot:solr:stop

However, stop is not working. I noticed that the pid written in the pids folder is not the correct one.

When I start, I can see the following as output on the ps -ef | grep 'java' command:

1000      4758  4752  0 20:32 ?        00:00:00 sh -c java -Djetty.port\=8982 -Dsolr.data.dir\=/home/panayotis/my_documents/ezMTA/solr/data/development -Dsolr.solr.home\=/home/panayotis/my_documents/ezMTA/solr -Djava.util.logging.config.file\=/tmp/logging.properties20120902-4758-13patuu -jar start.jar

1000      4761  4758  7 20:32 ?        00:00:01 java -Djetty.port=8982 -Dsolr.data.dir=/home/panayotis/my_documents/ezMTA/solr/data/development -Dsolr.solr.home=/home/panayotis/my_documents/ezMTA/solr -Djava.util.logging.config.file=/tmp/logging.properties20120902-4758-13patuu -jar start.jar

This means that the real server process is the one with pid "4761". Process "4758" is only there to start the server in a shell.

When I cat the pid file I see:

cat solr/pids/development/sunspot-solr-development.pid
4758

Which means that rake sunspot:solr:stop is killing "4758" and leaves "4761" up and running.


Solution

  • I have downgraded to 'sunspot_solr', '1.3.1' and now it works ok.