[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