Description
I have found a bug that is pretty important to testing service status whether up or down.
If you look at the init.d/couchbase-server file this is how it looks on communtiy:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
DAEMON=/opt/couchbase/bin/couchbase-server
|
PIDFILE=/opt/couchbase/var/lib/couchbase/couchbase-server-community.pid
|
NODEFILE=/opt/couchbase/var/lib/couchbase/couchbase-server-community.node
|
COOKIEFILE=/opt/couchbase/var/lib/couchbase/couchbase-server-community.cookie
|
test -f $DAEMON || exit 0
|
enterprise:
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
DAEMON=/opt/couchbase/bin/couchbase-server
|
PIDFILE=/opt/couchbase/var/lib/couchbase/couchbase-server.pid
|
NODEFILE=/opt/couchbase/var/lib/couchbase/couchbase-server.node
|
COOKIEFILE=/opt/couchbase/var/lib/couchbase/couchbase-server.cookie
|
test -f $DAEMON || exit 0
|
I'm showing the status of a enterprise server and communtiy server:
|
community:
|
[root@simple-server-centos-67 init.d]# service couchbase-server status
|
couchbase-server-community is not running
|
[root@simple-server-centos-67 init.d]# /etc/init.d/couchbase-server status
|
couchbase-server-community is not running
|
[root@simple-server-centos-67 init.d]# ps -ef | grep -i couchbase-server
|
497 3209 1 0 09:52 ? 00:00:01 /opt/couchbase/lib/erlang/erts-5.10.4.0.0.1/bin/beam.smp -A 16 -- -root /opt/couchbase/lib/erlang -progname erl -- -home /opt/couchbase -- -smp enable -kernel inet_dist_listen_min 21100 inet_dist_listen_max 21299 error_logger false -sasl sasl_error_logger false -hidden -name babysitter_of_ns_1@127.0.0.1 -setcookie nocookie -- -noshell -noinput -noshell -noinput -run ns_babysitter_bootstrap -- -couch_ini /opt/couchbase/etc/couchdb/default.ini /opt/couchbase/etc/couchdb/default.d/capi.ini /opt/couchbase/etc/couchdb/default.d/geocouch.ini /opt/couchbase/etc/couchdb/local.ini -ns_babysitter cookiefile "/opt/couchbase/var/lib/couchbase/couchbase-server.cookie" -ns_server config_path "/opt/couchbase/etc/couchbase/static_config" -ns_server pidfile "/opt/couchbase/var/lib/couchbase/couchbase-server.pid" -ns_server cookiefile "/opt/couchbase/var/lib/couchbase/couchbase-server.cookie-ns-server" -ns_server enable_mlockall false
|
enterprise:
|
[root@i-9f6ef918 init.d]# service couchbase-server status
|
couchbase-server is running
|
[root@i-9f6ef918 init.d]# /etc/init.d/couchbase-server status
|
couchbase-server is running
|
[root@i-9f6ef918 init.d]# ps -ef | grep -i couchbase-server
|
394 6061 1 0 Apr27 ? 00:00:14 /opt/couchbase/lib/erlang/erts-5.10.4.0.0.1/bin/beam.smp -A 16 -- -root /opt/couchbase/lib/erlang -progname erl -- -home /opt/couchbase -- -smp enable -kernel inet_dist_listen_min 21100 inet_dist_listen_max 21299 error_logger false -sasl sasl_error_logger false -hidden -name babysitter_of_ns_1@127.0.0.1 -setcookie nocookie -- -noshell -noinput -noshell -noinput -run ns_babysitter_bootstrap -- -couch_ini /opt/couchbase/etc/couchdb/default.ini /opt/couchbase/etc/couchdb/default.d/capi.ini /opt/couchbase/etc/couchdb/default.d/geocouch.ini /opt/couchbase/etc/couchdb/local.ini -ns_babysitter cookiefile "/opt/couchbase/var/lib/couchbase/couchbase-server.cookie" -ns_server config_path "/opt/couchbase/etc/couchbase/static_config" -ns_server pidfile "/opt/couchbase/var/lib/couchbase/couchbase-server.pid" -ns_server cookiefile "/opt/couchbase/var/lib/couchbase/couchbase-server.cookie-ns-server" -ns_server enable_mlockall false
|
As you can see both server are running but community says it is not running because it is looking in the couchbase-server-community.pid file in
|
/opt/couchbase/var/lib/couchbase/
|
community:
|
[root@simple-server-centos-67 couchbase]# ll couchbase-server*
|
-rw-r--r--. 1 couchbase root 0 Apr 29 09:52 couchbase-server-community.cookie
|
-rw-r--r--. 1 couchbase root 0 Apr 29 09:52 couchbase-server-community.node
|
-rw-r--r--. 1 couchbase root 0 Apr 29 09:52 couchbase-server-community.pid
|
-rw-rw----. 1 couchbase couchbase 17 Apr 29 09:52 couchbase-server.cookie
|
-rw-rw----. 1 couchbase couchbase 17 Apr 29 09:52 couchbase-server.cookie-ns-server
|
-rw-rw----. 1 couchbase couchbase 15 Apr 29 09:52 couchbase-server.node
|
-rw-rw----. 1 couchbase couchbase 5 Apr 29 09:52 couchbase-server.pid
|
[root@simple-server-centos-67 couchbase]# cat couchbase-server.pid
|
3276
|
[root@simple-server-centos-67 couchbase]# cat couchbase-server-community.pid
|
[root@simple-server-centos-67 couchbase]#
|
enterprise:
|
[root@i-9f6ef918 couchbase]# ll couchbase-server*
|
-rw-rw----. 1 couchbase couchbase 17 Apr 27 15:46 couchbase-server.cookie
|
-rw-rw----. 1 couchbase couchbase 17 Apr 27 15:46 couchbase-server.cookie-ns-server
|
-rw-rw----. 1 couchbase couchbase 15 Apr 27 15:46 couchbase-server.node
|
-rw-r--r--. 1 couchbase root 5 Apr 27 15:46 couchbase-server.pid
|
[root@i-9f6ef918 couchbase]# cat couchbase-server.pid
|
6093
|
This prevents you from knowing if community is running correct after you may do restarts. It also doesn't allow for good testing with automation in chefspec or severspec. If you try to stop the service with chef it already thinks it is stopped when it is not and then testing the command gives a failure because it wasn't stopped.