[ClusterLabs] [Question] Question about mysql RA.
renayama19661014 at ybb.ne.jp
renayama19661014 at ybb.ne.jp
Wed Nov 4 11:36:37 CET 2015
Hi All,
I contributed a patch several times about mysql, too.
I did not mind it very much before, but mysql RA makes next move.
Step1) Constitute a cluster using mysql in Pacemaker.
Step2) The mysql process kill by signal SIGKILL.
Step3) Stop Pacemaker before monitor error occurs and stop mysql
As a result, mysql RA causes trouble in stop.
By this trouble, Pacemaker does not stop until escalation.
The cause is processing unlike pgsql RA.
When a process of pid does not exist, in the case of a stop not to go by way of monitor trouble, mysql RA produces ERR_GENERIC.
When a process of pid does not exist, pgsql becomes the success of the stop.
---------------------------------------------------------
* mysql
(snip)
mysql_monitor() {
local rc
local status_loglevel="err"
# Set loglevel to info during probe
if ocf_is_probe; then
status_loglevel="info"
fi
mysql_common_status $status_loglevel
rc=$?
# TODO: check max connections error
# If status returned an error, return that immediately
if [ $rc -ne $OCF_SUCCESS ]; then
return $rc
fi
(snip)
mysql_stop() {
if ocf_is_ms; then
# clear preference for becoming master
$CRM_MASTER -D
# Remove VIP capability
set_reader_attr 0
fi
mysql_common_stop
}
(snip)
* mysql-common.sh
(snip)
mysql_common_status() {
local loglevel=$1
local pid=$2
if [ -z "$pid" ]; then
if [ ! -e $OCF_RESKEY_pid ]; then
ocf_log $loglevel "MySQL is not running"
return $OCF_NOT_RUNNING;
fi
pid=`cat $OCF_RESKEY_pid`;
fi
if [ -d /proc -a -d /proc/1 ]; then
[ "u$pid" != "u" -a -d /proc/$pid ]
else
kill -s 0 $pid >/dev/null 2>&1
fi
if [ $? -eq 0 ]; then
return $OCF_SUCCESS;
else
ocf_log $loglevel "MySQL not running: removing old PID file"
rm -f $OCF_RESKEY_pid
return $OCF_NOT_RUNNING;
fi
}
(snip)
mysql_common_stop()
{
local pid
local rc
if [ ! -f $OCF_RESKEY_pid ]; then
ocf_log info "MySQL is not running"
return $OCF_SUCCESS
fi
pid=`cat $OCF_RESKEY_pid 2> /dev/null `
/bin/kill $pid > /dev/null
rc=$?
if [ $rc != 0 ]; then
ocf_exit_reason "MySQL couldn't be stopped"
return $OCF_ERR_GENERIC
fi
(snip)
---------------------------------------------------------
The mysql RA does such a code from old days.
* http://hg.linux-ha.org/agents/file/67234f982ab7/heartbeat/mysql
Does mysql RA know the reason becoming this made?
Possibly is it a factor to be conscious of mysql cluster?
I think about a patch of this movement of mysql RA.
I want to know the detailed reason.
Best Regards,
Hideo Yamauchi.
More information about the Users
mailing list