[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-ha-dev
Subject: Re: [Linux-ha-dev] Modified patch for RA
From: Dejan Muhamedagic <dejan () suse ! de>
Date: 2012-05-22 19:00:04
Message-ID: 20120522190004.GA21940 () walrus ! homenet
[Download RAW message or body]
Hi Yves,
On Fri, May 18, 2012 at 12:18:13PM -0400, Yves Trudeau wrote:
> Hi Dejan,
> yes, the existance of master_log_file is now checked since reset
> slave doesn't clear master_host.
Good. Patch applied upstream now. Thanks!
Dejan
P.S. BTW, usually not best to top-post.
> Regards,
>
> Yves
>
> Le 2012-05-18 12:00, Dejan Muhamedagic a écrit :
> > Hi Yves,
> >
> > On Fri, May 18, 2012 at 11:39:14AM -0400, Yves Trudeau wrote:
> >> Hi Dejan,
> >> here's the patch for Raoul comments. The patch is over
> >> git://github.com/ClusterLabs/resource-agents.git commit bc1991fd0e
> >>
> >> commit message:
> >>
> >> Better reset slave handling and cleanup for get_slave_info
> >
> > OK. What is the relation between this patch and the pull request
> > proposed by bmildren in github (if any)? Has the handling of this
> > changed with your previous patch?
> >
> > Thanks,
> >
> > Dejan
> >
> >>
> >> Regards,
> >>
> >> Yves
> >>
> >> Le 2012-05-18 11:13, Dejan Muhamedagic a écrit :
> >>> On Fri, May 18, 2012 at 10:08:54AM -0400, Yves Trudeau wrote:
> >>>> Hi Raoul and Dejan,
> >>>> I completely forgot about this one but I am wondering about the
> >>>> impacts. I have many setups in production and none reported any
> >>>> problem related to this. The fix pretty easy though, Dejan, is it
> >>>> too late to submit a patch?
> >>>
> >>> No, if the patch is fine. Up to you. It's very mysql-specific,
> >>> cannot offer much help.
> >>> _______________________________________________________
> >>> Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> >>> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> >>> Home Page: http://linux-ha.org/
> >>>
> >
> >> --- mysql.bc1991fd0e 2012-05-18 11:30:51.358422574 -0400
> >> +++ resource-agents-prm/heartbeat/mysql 2012-05-18 11:32:38.418420112 -0400
> >> @@ -413,23 +413,27 @@
> >>
> >> # Check whether this machine should be slave
> >> if ! ocf_is_ms || ! get_read_only; then
> >> - return 1;
> >> + return 1
> >> fi
> >> +
> >> + get_slave_info
> >> + rc=$?
> >>
> >> - tmpfile=`mktemp ${HA_RSCTMP}/is_slave.${OCF_RESOURCE_INSTANCE}.XXXXXX`
> >> -
> >> - $MYSQL $MYSQL_OPTIONS_REPL \
> >> - -e 'SHOW SLAVE STATUS\G'> $tmpfile
> >> -
> >> - # "SHOW SLAVE STATUS" returns an empty set if instance is not a
> >> - # replication slave
> >> - if [ -s $tmpfile ]; then
> >> - rm -f $tmpfile
> >> - return 0
> >> + if [ $rc -eq 0 ]; then
> >> + # show slave status is not empty
> >> + # Is there a master_log_file defined? (master_log_file is deleted
> >> + # by reset slave
> >> + if [ "$master_log_file" ]; then
> >> + return 0
> >> + else
> >> + return 1
> >> + fi
> >> + else
> >> + # "SHOW SLAVE STATUS" returns an empty set if instance is not a
> >> + # replication slave
> >> + return 1
> >> fi
> >> -
> >> - rm -f $tmpfile
> >> - return 1
> >> +
> >> }
> >>
> >> parse_slave_info() {
> >> @@ -440,31 +444,36 @@
> >> get_slave_info() {
> >> # Warning: this sets $tmpfile and LEAVE this file! You must delete it after use!
> >> local mysql_options
> >> +
> >> + if [ "$master_log_file" -a "$master_host" ]; then
> >> + # variables are already defined, get_slave_info has been run before
> >> + return $OCF_SUCCESS
> >> + else
> >> + tmpfile=`mktemp ${HA_RSCTMP}/check_slave.${OCF_RESOURCE_INSTANCE}.XXXXXX`
> >>
> >> - tmpfile=`mktemp ${HA_RSCTMP}/check_slave.${OCF_RESOURCE_INSTANCE}.XXXXXX`
> >> + $MYSQL $MYSQL_OPTIONS_REPL \
> >> + -e 'SHOW SLAVE STATUS\G'> $tmpfile
> >>
> >> - $MYSQL $MYSQL_OPTIONS_REPL \
> >> - -e 'SHOW SLAVE STATUS\G'> $tmpfile
> >> + if [ -s $tmpfile ]; then
> >> + master_host=`parse_slave_info Master_Host $tmpfile`
> >> + master_user=`parse_slave_info Master_User $tmpfile`
> >> + master_port=`parse_slave_info Master_Port $tmpfile`
> >> + master_log_file=`parse_slave_info Master_Log_File $tmpfile`
> >> + master_log_pos=`parse_slave_info Read_Master_Log_Pos $tmpfile`
> >> + slave_sql=`parse_slave_info Slave_SQL_Running $tmpfile`
> >> + slave_io=`parse_slave_info Slave_IO_Running $tmpfile`
> >> + last_errno=`parse_slave_info Last_Errno $tmpfile`
> >> + secs_behind=`parse_slave_info Seconds_Behind_Master $tmpfile`
> >> + ocf_log debug "MySQL instance running as a replication slave"
> >> + else
> >> + # Instance produced an empty "SHOW SLAVE STATUS" output --
> >> + # instance is not a slave
> >> + ocf_log err "check_slave invoked on an instance that is not a replication slave."
> >> + return $OCF_ERR_GENERIC
> >> + fi
> >>
> >> - if [ -s $tmpfile ]; then
> >> - master_host=`parse_slave_info Master_Host $tmpfile`
> >> - master_user=`parse_slave_info Master_User $tmpfile`
> >> - master_port=`parse_slave_info Master_Port $tmpfile`
> >> - master_log_file=`parse_slave_info Master_Log_File $tmpfile`
> >> - master_log_pos=`parse_slave_info Read_Master_Log_Pos $tmpfile`
> >> - slave_sql=`parse_slave_info Slave_SQL_Running $tmpfile`
> >> - slave_io=`parse_slave_info Slave_IO_Running $tmpfile`
> >> - last_errno=`parse_slave_info Last_Errno $tmpfile`
> >> - secs_behind=`parse_slave_info Seconds_Behind_Master $tmpfile`
> >> - ocf_log debug "MySQL instance running as a replication slave"
> >> - else
> >> - # Instance produced an empty "SHOW SLAVE STATUS" output --
> >> - # instance is not a slave
> >> - ocf_log err "check_slave invoked on an instance that is not a replication slave."
> >> - return $OCF_ERR_GENERIC
> >> + return $OCF_SUCCESS
> >> fi
> >> -
> >> - return $OCF_SUCCESS
> >> }
> >>
> >> check_slave() {
> >> @@ -692,7 +701,7 @@
> >> ocf_run $MYSQL $MYSQL_OPTIONS_REPL \
> >> -e "RESET SLAVE;"
> >> if [ $? -gt 0 ]; then
> >> - ocf_log err "Failed to set master"
> >> + ocf_log err "Failed to reset slave"
> >> exit $OCF_ERR_GENERIC
> >> fi
> >> }
> >
> >> _______________________________________________________
> >> Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> >> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> >> Home Page: http://linux-ha.org/
> >
> > _______________________________________________________
> > Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> > Home Page: http://linux-ha.org/
> >
> _______________________________________________________
> Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic