summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMate Lakat <mlakat@mlakat.hu>2017-05-09 15:22:49 +0200
committerMate Lakat <mlakat@mlakat.hu>2017-05-09 15:39:29 +0200
commit8efde0e212b286232d887a95b7af3c638f53dea6 (patch)
treee39ee08371819d161b6fe3e7db1370d73dda66d4 /scripts
parentcf05aed5c9d37bd10322935e38a8e50fe2411911 (diff)
downloadrabbitmq-server-git-8efde0e212b286232d887a95b7af3c638f53dea6.tar.gz
Fix HA OCF script
Some parts of #21 have not been added to the stable branch. This change fixes the issue by adding missing changes to rabbitmq-server-ha.ocf and also fixing rabbitmq-server.ocf
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/rabbitmq-server-ha.ocf20
-rwxr-xr-xscripts/rabbitmq-server.ocf9
2 files changed, 28 insertions, 1 deletions
diff --git a/scripts/rabbitmq-server-ha.ocf b/scripts/rabbitmq-server-ha.ocf
index 983fc31358..87bb7d4727 100755
--- a/scripts/rabbitmq-server-ha.ocf
+++ b/scripts/rabbitmq-server-ha.ocf
@@ -51,6 +51,7 @@ OCF_RESKEY_max_rabbitmqctl_timeouts_default=3
OCF_RESKEY_policy_file_default="/usr/local/sbin/set_rabbitmq_policy"
OCF_RESKEY_rmq_feature_health_check_default=true
OCF_RESKEY_rmq_feature_local_list_queues_default=true
+OCF_RESKEY_limit_nofile_default=65535
: ${HA_LOGTAG="lrmd"}
: ${HA_LOGFACILITY="daemon"}
@@ -76,6 +77,7 @@ OCF_RESKEY_rmq_feature_local_list_queues_default=true
: ${OCF_RESKEY_policy_file=${OCF_RESKEY_policy_file_default}}
: ${OCF_RESKEY_rmq_feature_health_check=${OCF_RESKEY_rmq_feature_health_check_default}}
: ${OCF_RESKEY_rmq_feature_local_list_queues=${OCF_RESKEY_rmq_feature_local_list_queues_default}}
+: ${OCF_RESKEY_limit_nofile=${OCF_RESKEY_limit_nofile_default}}
#######################################################################
@@ -347,6 +349,14 @@ stopped/demoted.
<content type="boolean" default="${OCF_RESKEY_rmq_feature_local_list_queues_default}" />
</parameter>
+<parameter name="limit_nofile" unique="0" required="0">
+<longdesc lang="en">
+Soft and hard limit for NOFILE
+</longdesc>
+<shortdesc lang="en">NOFILE limit</shortdesc>
+<content type="string" default="${OCF_RESKEY_limit_nofile_default}" />
+</parameter>
+
$EXTENDED_OCF_PARAMS
</parameters>
@@ -571,6 +581,13 @@ now() {
date -u +%s
}
+set_limits() {
+ local current_limit=$(su $OCF_RESKEY_username -s /bin/sh -c "ulimit -n")
+ if [ ! -z $OCF_RESKEY_limit_nofile -a $OCF_RESKEY_limit_nofile -gt $current_limit ] ; then
+ ulimit -n $OCF_RESKEY_limit_nofile
+ fi
+}
+
master_score() {
local LH="${LL} master_score():"
local score=$1
@@ -1181,6 +1198,9 @@ start_beam_process() {
[ -f /etc/default/rabbitmq-server ] && . /etc/default/rabbitmq-server
+ # RabbitMQ requires high soft and hard limits for NOFILE
+ set_limits
+
# run beam process
command="${OCF_RESKEY_binary} >> \"${OCF_RESKEY_log_dir}/startup_log\" 2>/dev/null"
RABBITMQ_NODE_ONLY=1 su rabbitmq -s /bin/sh -c "${command}"&
diff --git a/scripts/rabbitmq-server.ocf b/scripts/rabbitmq-server.ocf
index 7aaecba759..cf832fe760 100755
--- a/scripts/rabbitmq-server.ocf
+++ b/scripts/rabbitmq-server.ocf
@@ -30,7 +30,7 @@
## OCF_RESKEY_mnesia_base
## OCF_RESKEY_server_start_args
## OCF_RESKEY_pid_file
-## OCF_RESKEY_limit_nofile_default
+## OCF_RESKEY_limit_nofile
#######################################################################
# Initialization:
@@ -216,6 +216,13 @@ export_vars() {
[ ! -z $RABBITMQ_PID_FILE ] && ensure_pid_dir && export RABBITMQ_PID_FILE
}
+set_limits() {
+ local current_limit=$(su rabbitmq -s /bin/sh -c "ulimit -n")
+ if [ ! -z $RABBITMQ_LIMIT_NOFILE -a $RABBITMQ_LIMIT_NOFILE -gt $current_limit ] ; then
+ ulimit -n $RABBITMQ_LIMIT_NOFILE
+ fi
+}
+
rabbit_validate_partial() {
if [ ! -x $RABBITMQ_SERVER ]; then
ocf_log err "rabbitmq-server server $RABBITMQ_SERVER does not exist or is not executable";