Hi Kazutomo-san, On Tue, Aug 02, 2011 at 06:12:12PM +0900, NAKAHIRA Kazutomo wrote: > Hi, Andrew > > (2011/08/01 12:13), Andrew Beekhof wrote: > >2011/7/27 NAKAHIRA Kazutomo<nakahira.kazut...@oss.ntt.co.jp>: > >>Hi, all > >> > >>I configured crmd-transition-delay="2s" to address the following problem. > >> > >> http://www.gossamer-threads.com/lists/linuxha/pacemaker/68504 > >> http://developerbugs.linux-foundation.org/show_bug.cgi?id=2528 > >> > >>And then, "crm resource restart" command get become less able to > >>restart any resources on the DC node. > >># "crm resource restart" works fine on the non-DC node. > >># Please see attached hb_report generated on the simple environment. > >> > >>How can I use "crm resource restart" command on the DC node > >>with crmd-transtion-delay="2s"? > > > >Sounds like the shell isn't waiting long enough. > > I understood that it is hard to resolve this problem by the > configuration and we need to fix crm shell. Would that be about > right? > > If so, I made a patch for crm shell that wait a > crmd-transition-delay before checking DC node status. > > Please see attached patch.
The patches look fine to me. Cheers, Dejan > Best regards, > > > > >> > >>I confirmed that I can avoid this problem by the following procedure > >> 1. "crm resource stop rsc-ID" > >> 2. wait crmd-transtion-delay(2) scond > >> 3. "crm resource start rsc-ID" > >>but this behavior(restart does not works on the DC node) > >>may be confuse users. > >> > >>Best regards, > >> > >>-- > >>NAKAHIRA Kazutomo > >>Infrastructure Software Technology Unit > >>NTT Open Source Software Center > >> > >>_______________________________________________ > >>Pacemaker mailing list: Pacemaker@oss.clusterlabs.org > >>http://oss.clusterlabs.org/mailman/listinfo/pacemaker > >> > >>Project Home: http://www.clusterlabs.org > >>Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf > >>Bugs: > >>http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker > >> > >> > > > >_______________________________________________ > >Pacemaker mailing list: Pacemaker@oss.clusterlabs.org > >http://oss.clusterlabs.org/mailman/listinfo/pacemaker > > > >Project Home: http://www.clusterlabs.org > >Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf > >Bugs: > >http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker > > > > > > > -- > NAKAHIRA Kazutomo > Infrastructure Software Technology Unit > NTT Open Source Software Center > # HG changeset patch > # User NAKAHIRA Kazutomo <nakahira.kazut...@oss.ntt.co.jp> > # Date 1312274729 -32400 > # Branch stable-1.0 > # Node ID 2b4a64c1bb737cfce61b1eaef0dca31d903d9b2e > # Parent db98485d06ed3fe0fe236509f023e1bd4a5566f1 > shell: crm_msec is deemed desirable to be located in the utils.py > > diff -r db98485d06ed -r 2b4a64c1bb73 shell/modules/ra.py.in > --- a/shell/modules/ra.py.in Fri May 06 13:47:43 2011 +0200 > +++ b/shell/modules/ra.py.in Tue Aug 02 17:45:29 2011 +0900 > @@ -224,37 +224,6 @@ > depth = find_value(pl, "depth") or '0' > role = find_value(pl, "role") > return mk_monitor_name(role,depth) > -def crm_msec(t): > - ''' > - See lib/common/utils.c:crm_get_msec(). > - ''' > - convtab = { > - 'ms': (1,1), > - 'msec': (1,1), > - 'us': (1,1000), > - 'usec': (1,1000), > - '': (1000,1), > - 's': (1000,1), > - 'sec': (1000,1), > - 'm': (60*1000,1), > - 'min': (60*1000,1), > - 'h': (60*60*1000,1), > - 'hr': (60*60*1000,1), > - } > - if not t: > - return -1 > - r = re.match("\s*(\d+)\s*([a-zA-Z]+)?", t) > - if not r: > - return -1 > - if not r.group(2): > - q = '' > - else: > - q = r.group(2).lower() > - try: > - mult,div = convtab[q] > - except: > - return -1 > - return (int(r.group(1))*mult)/div > def crm_time_cmp(a, b): > return crm_msec(a) - crm_msec(b) > > diff -r db98485d06ed -r 2b4a64c1bb73 shell/modules/utils.py > --- a/shell/modules/utils.py Fri May 06 13:47:43 2011 +0200 > +++ b/shell/modules/utils.py Tue Aug 02 17:45:29 2011 +0900 > @@ -199,6 +199,38 @@ > s = get_stdout(add_sudo(cmd), stderr_on) > return s.split('\n') > > +def crm_msec(t): > + ''' > + See lib/common/utils.c:crm_get_msec(). > + ''' > + convtab = { > + 'ms': (1,1), > + 'msec': (1,1), > + 'us': (1,1000), > + 'usec': (1,1000), > + '': (1000,1), > + 's': (1000,1), > + 'sec': (1000,1), > + 'm': (60*1000,1), > + 'min': (60*1000,1), > + 'h': (60*60*1000,1), > + 'hr': (60*60*1000,1), > + } > + if not t: > + return -1 > + r = re.match("\s*(\d+)\s*([a-zA-Z]+)?", t) > + if not r: > + return -1 > + if not r.group(2): > + q = '' > + else: > + q = r.group(2).lower() > + try: > + mult,div = convtab[q] > + except: > + return -1 > + return (int(r.group(1))*mult)/div > + > def wait4dc(what = "", show_progress = True): > ''' > Wait for the DC to get into the S_IDLE state. This should be > # HG changeset patch > # User NAKAHIRA Kazutomo <nakahira.kazut...@oss.ntt.co.jp> > # Date 1312275597 -32400 > # Branch stable-1.0 > # Node ID 422551903526667c380e39f1712b38f3c2b8f0a6 > # Parent 2b4a64c1bb737cfce61b1eaef0dca31d903d9b2e > shell: waits crmd-transition-delay before DC status checking > > diff -r 2b4a64c1bb73 -r 422551903526 shell/modules/utils.py > --- a/shell/modules/utils.py Tue Aug 02 17:45:29 2011 +0900 > +++ b/shell/modules/utils.py Tue Aug 02 17:59:57 2011 +0900 > @@ -263,6 +263,13 @@ > if not dc: > common_warn("can't find DC in: %s" % s) > return False > + cmd = "crm_attribute -Gq -t crm_config -n crmd-transition-delay 2> > /dev/null" > + delay = get_stdout(add_sudo(cmd)) > + if delay: > + delaymsec = crm_msec(delay) > + if 0 < delaymsec: > + common_info("The crmd-transition-delay is configured. Waiting %d > msec before check DC status." % delaymsec) > + time.sleep(delaymsec / 1000) > cmd = "crmadmin -S %s" % dc > cnt = 0 > output_started = 0 > _______________________________________________ > Pacemaker mailing list: Pacemaker@oss.clusterlabs.org > http://oss.clusterlabs.org/mailman/listinfo/pacemaker > > Project Home: http://www.clusterlabs.org > Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf > Bugs: > http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker _______________________________________________ Pacemaker mailing list: Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker