Am Dienstag, 15. Dezember 2009 09:37:01 schrieb Chris Picton: > On Tue, 15 Dec 2009 07:13:29 +0000, Chris Picton wrote: > >>> > The monitor op shouldn't make any changes. If the rule has gone > >>> > away, the monitor op should return failure to indicate the resource > >>> > is broken, which will result in Pacemaker telling the the failed > >>> > resource to stop, and start again. Actually, from the logs it looks > >>> > like a restart was attempted, and the stop op reported success, but > >>> > the subsequent start failed for some reason. > >>> > > >>> > Regards, > >>> > > >>> > Tim > >>> > >>> Exactly. So the RA seems to have a problem handeling this error > >>> scenario correctly. > >> > >> OK. Anybody knows how should it work and where's the problem. It seems > >> like it can't find some proc file. > > > > I will have a go at fixing the RA today to do the following: 1. Detect > > the error in monitor and return the correct value 2. Stop the resource > > cleanly > > 3. Start it up again. > > > > > > Will let you know how it goes. > > The below patch seems to detect this specific failure, and stop the > resource cleanly. > > The start operation is able to start it up again without errors > > Chris > > ------------------- > --- IPaddr2.orig 2009-12-15 10:07:58.000000000 +0200 > +++ IPaddr2.new 2009-12-15 10:22:03.000000000 +0200 > @@ -548,6 +548,7 @@ > # returns: > # ok = served (for CIP: + hash bucket) > # partial = served and no hash bucket (CIP only) > +# partial2 = served and no CIP iptables rule > # no = nothing > # > ip_served() { > @@ -577,6 +578,10 @@ > fi > > # Special handling for the CIP: > + if [ ! -e $IP_CIP_FILE ]; then > + echo "partial2" > + return 0 > + fi > if egrep -q "(^|,)${IP_INC_NO}(,|$)" $IP_CIP_FILE ; then > echo "ok" > return 0 > @@ -620,7 +625,7 @@ > exit $OCF_SUCCESS > fi > > - if [ -n "$IP_CIP" ] && [ $ip_status = "no" ]; then > + if [ -n "$IP_CIP" ] && [ $ip_status = "no" ] || [ $ip_status = > "partial2" ]; then > $MODPROBE ip_conntrack > $IPTABLES -I INPUT -d $BASEIP -i $NIC -j CLUSTERIP \ > --new \ > @@ -691,13 +696,14 @@ > fi > fi > local ip_status=`ip_served` > + ocf_log info "IP status = $ip_status, IP_CIP=$IP_CIP" > > if [ $ip_status = "no" ]; then > > : Requested interface not in use > > exit $OCF_SUCCESS > fi > > - if [ -n "$IP_CIP" ]; then > + if [ -n "$IP_CIP" ] && [ $ip_status != "partial2" ]; then > if [ $ip_status = "partial" ]; then > exit $OCF_SUCCESS > fi > @@ -743,7 +749,7 @@ > ok) > return $OCF_SUCCESS > ;; > - partial|no) > + partial|no|partial2) > exit $OCF_NOT_RUNNING > ;; > *)
Thank you very much for you help! -- Dr. Michael Schwartzkopff MultiNET Services GmbH Addresse: Bretonischer Ring 7; 85630 Grasbrunn; Germany Tel: +49 - 89 - 45 69 11 0 Fax: +49 - 89 - 45 69 11 21 mob: +49 - 174 - 343 28 75 mail: mi...@multinet.de web: www.multinet.de Sitz der Gesellschaft: 85630 Grasbrunn Registergericht: Amtsgericht München HRB 114375 Geschäftsführer: Günter Jurgeneit, Hubert Martens --- PGP Fingerprint: F919 3919 FF12 ED5A 2801 DEA6 AA77 57A4 EDD8 979B Skype: misch42 _______________________________________________ Pacemaker mailing list Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker