[
https://issues.apache.org/jira/browse/SOLR-9769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16826209#comment-16826209
]
Erick Erickson commented on SOLR-9769:
--------------------------------------
I come down on the side of reporting an error if Solr is already stopped.
{quote}
What should be considered a success when calling stop? When I am calling stop I
want to make sure that solr is not running. That is the state i want to
transition to. So when solr is not running after calling stop that is a
success. When after calling stop solr is still running that is a failure.
{quote}
The place this argument falls down is when, say, I want to stop a particular
Solr on a particular port and don't enter the proper port. Example: 'bin/solr
stop -p 8984' but Solr is running on 8983. I am _not_ in the state I intend,
which is that my Solr running on port 8983 is stopped. At least when an error
is reported because no solr is running on 8984 I have a clue that the result I
wanted isn't the result I got.
There is quite a bit of room for the exit codes being regularized. This is not
a change I'd encourage though.
> solr stop on a service already stopped should return exit code 0
> ----------------------------------------------------------------
>
> Key: SOLR-9769
> URL: https://issues.apache.org/jira/browse/SOLR-9769
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: scripts and tools
> Affects Versions: 6.3
> Reporter: Jiří Pejchal
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> According to the LSB specification
> https://refspecs.linuxfoundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic.html#INISCRPTACT
> running stop on a service already stopped or not running should be
> considered successful and return code should be 0 (zero).
> Solr currently returns exit code 1:
> {code}
> $ /etc/init.d/solr stop; echo $?
> Sending stop command to Solr running on port 8983 ... waiting up to 180
> seconds to allow Jetty process 4277 to stop gracefully.
> 0
> $ /etc/init.d/solr stop; echo $?
> No process found for Solr node running on port 8983
> 1
> {code}
> {code:title="bin/solr"}
> if [ "$SOLR_PID" != "" ]; then
> stop_solr "$SOLR_SERVER_DIR" "$SOLR_PORT" "$STOP_KEY" "$SOLR_PID"
> else
> if [ "$SCRIPT_CMD" == "stop" ]; then
> echo -e "No process found for Solr node running on port $SOLR_PORT"
> exit 1
> fi
> fi
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]