Hi! Basically I think there should be no hard-coded constants whose value depends on some performance measurements, like 5s for rebooting a VM. So I support Tom's changes.
However I noticed: +running; apparently, this period lasts only for a second or +two (missing full stop at end of sentence) Actually I'd rephrase the description: "When the guest is rebooting, there is a short interval where the guest completely disappears from "xm list", which, in turn, will cause the monitor operation to return a "not running" status. If the guest cannot be found , this value will cause some extra delay in the monitor operation to work around the problem." (I.e. try to describe the effect, not the implementation) And yes, I appreciate consistent log formats also ;-) Regards, Ulrich >>> Tom Parker <tpar...@cbnco.com> schrieb am 18.10.2013 um 19:30 in Nachricht <5261703a.5070...@cbnco.com>: > Hi Dejan. Sorry to be slow to respond to this. I have done some > testing and everything looks good. > > I spent some time tweaking the RA and I added a parameter called > wait_for_reboot (default 5s) to allow us to override the reboot sleep > times (in case it's more than 5 seconds on really loaded hypervisors). > I also cleaned up a few log entries to make them consistent in the RA > and edited your entries for xen status to be a little bit more clear as > to why we think we should be waiting. > > I have attached a patch here because I have NO idea how to create a > branch and pull request. If there are links to a good place to start I > may be able to contribute occasionally to some other RAs that I use. > > Please let me know what you think. > > Thanks for your help > > Tom > > > On 10/17/2013 06:10 AM, Dejan Muhamedagic wrote: >> On Thu, Oct 17, 2013 at 11:45:17AM +0200, Dejan Muhamedagic wrote: >>> Hi Tom, >>> >>> On Wed, Oct 16, 2013 at 05:28:28PM -0400, Tom Parker wrote: >>>> Some more reading of the source code makes me think the " || [ >>>> "$__OCF_ACTION" != "stop" ]; "is not needed. >>> Yes, you're right. I'll drop that part of the if statement. Many >>> thanks for testing. >> Fixed now. The if statement, which was obviously hard to follow, >> got relegated to the monitor function. Which makes the >> Xen_Status_with_Retry really stand for what's happening in there ;-) >> >> Tom, hope you can test again. >> >> Cheers, >> >> Dejan >> >>> Cheers, >>> >>> Dejan >>> >>>> Xen_Status_with_Retry() is only called from Stop and Monitor so we only >>>> need to check if it's a probe. Everything else should be handled in the >>>> case statement in the loop. >>>> >>>> Tom >>>> >>>> On 10/16/2013 05:16 PM, Tom Parker wrote: >>>>> Hi. I think there is an issue with the Updated Xen RA. >>>>> >>>>> I think there is an issue with the if statement here but I am not sure. >>>>> I may be confused about how bash || works but I don't see my servers >>>>> ever entering the loop on a vm disappearing. >>>>> >>>>> if ocf_is_probe || [ "$__OCF_ACTION" != "stop" ]; then >>>>> return $rc >>>>> fi >>>>> >>>>> Does this not mean that if we run a monitor operation that is not a >>>>> probe we will have: >>>>> >>>>> (ocf_is_probe) return false >>>>> (stop != monitor) return true >>>>> (false || true) return true >>>>> >>>>> which will cause the if statement to return $rc and never enter the loop? >>>>> >>>>> Xen_Status_with_Retry() { >>>>> local rc cnt=5 >>>>> >>>>> Xen_Status $1 >>>>> rc=$? >>>>> if ocf_is_probe || [ "$__OCF_ACTION" != "stop" ]; then >>>>> return $rc >>>>> fi >>>>> while [ $rc -eq $OCF_NOT_RUNNING -a $cnt -gt 0 ]; do >>>>> case "$__OCF_ACTION" in >>>>> stop) >>>>> ocf_log debug "domain $1 reported as not running, waiting $cnt >>>>> seconds ..." >>>>> ;; >>>>> monitor) >>>>> ocf_log warn "domain $1 reported as not running, but it is >>>>> expected to be running! Retrying for $cnt seconds ..." >>>>> ;; >>>>> *) : not reachable >>>>> ;; >>>>> esac >>>>> sleep 1 >>>>> Xen_Status $1 >>>>> rc=$? >>>>> let cnt=$((cnt-1)) >>>>> done >>>>> return $rc >>>>> } >>>>> >>>>> >>>>> >>>>> On 10/16/2013 12:12 PM, Dejan Muhamedagic wrote: >>>>>> Hi Tom, >>>>>> >>>>>> On Tue, Oct 15, 2013 at 07:55:11PM -0400, Tom Parker wrote: >>>>>>> Hi Dejan >>>>>>> >>>>>>> Just a quick question. I cannot see your new log messages being logged >>>>>>> to syslog >>>>>>> >>>>>>> ocf_log warn "domain $1 reported as not running, but it is expected to >>>>>>> be running! Retrying for $cnt seconds ... >>>>>>> >>>>>>> Do you know where I can set my logging to see warn level messages? I >>>>>>> expected to see them in my testing by default but that does not seem to >>>>>>> be true. >>>>>> You should see them by default. But note that these warnings may >>>>>> not happen, depending on the circumstances on your host. In my >>>>>> experiments they were logged only while the guest was rebooting >>>>>> and then just once or maybe twice. If you have recent >>>>>> resource-agents and crmsh, you can enable operation tracing (with >>>>>> crm resource trace <rsc> monitor <interval>). >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Dejan >>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> Tom >>>>>>> >>>>>>> >>>>>>> On 10/08/2013 05:04 PM, Dejan Muhamedagic wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> On Tue, Oct 08, 2013 at 01:52:56PM +0200, Ulrich Windl wrote: >>>>>>>>> Hi! >>>>>>>>> >>>>>>>>> I thought, I'll never be bitten by this bug, but I actually was! Now I'm >>>>>>>>> wondering whether the Xen RA sees the guest if you use pygrub, and pygrub is >>>>>>>>> still counting down for actual boot... >>>>>>>>> >>>>>>>>> But the reason why I'm writing is that I think I've discovered another bug > in >>>>>>>>> the RA: >>>>>>>>> >>>>>>>>> CRM decided to "recover" the guest VM "v02": >>>>>>>>> [...] >>>>>>>>> lrmd: [14903]: info: operation monitor[28] on prm_xen_v02 for client 14906: >>>>>>>>> pid 19516 exited with return code 7 >>>>>>>>> [...] >>>>>>>>> pengine: [14905]: notice: LogActions: Recover prm_xen_v02 (Started h05) >>>>>>>>> [...] >>>>>>>>> crmd: [14906]: info: te_rsc_command: Initiating action 5: stop >>>>>>>>> prm_xen_v02_stop_0 on h05 (local) >>>>>>>>> [...] >>>>>>>>> Xen(prm_xen_v02)[19552]: INFO: Xen domain v02 already stopped. >>>>>>>>> [...] >>>>>>>>> lrmd: [14903]: info: operation stop[31] on prm_xen_v02 for client 14906: pid >>>>>>>>> 19552 exited with return code 0 >>>>>>>>> [...] >>>>>>>>> crmd: [14906]: info: te_rsc_command: Initiating action 78: start >>>>>>>>> prm_xen_v02_start_0 on h05 (local) >>>>>>>>> lrmd: [14903]: info: rsc:prm_xen_v02 start[32] (pid 19686) >>>>>>>>> [...] >>>>>>>>> lrmd: [14903]: info: RA output: (prm_xen_v02:start:stderr) Error: Domain > 'v02' >>>>>>>>> already exists with ID '3' >>>>>>>>> lrmd: [14903]: info: RA output: (prm_xen_v02:start:stdout) Using config file >>>>>>>>> "/etc/xen/vm/v02". >>>>>>>>> [...] >>>>>>>>> lrmd: [14903]: info: operation start[32] on prm_xen_v02 for client 14906: > pid >>>>>>>>> 19686 exited with return code 1 >>>>>>>>> [...] >>>>>>>>> crmd: [14906]: info: process_lrm_event: LRM operation prm_xen_v02_start_0 >>>>>>>>> (call=32, rc=1, cib-update=5271, confirmed=true) unknown error >>>>>>>>> crmd: [14906]: WARN: status_from_rc: Action 78 (prm_xen_v02_start_0) on h05 >>>>>>>>> failed (target: 0 vs. rc: 1): Error >>>>>>>>> [...] >>>>>>>>> >>>>>>>>> As you can clearly see "start" failed, because the guest was found up > already! >>>>>>>>> IMHO this is a bug in the RA (SLES11 SP2: resource-agents-3.9.4-0.26.84). >>>>>>>> Yes, I've seen that. It's basically the same issue, i.e. the >>>>>>>> domain being gone for a while and then reappearing. >>>>>>>> >>>>>>>>> I guess the following test is problematic: >>>>>>>>> --- >>>>>>>>> xm create ${OCF_RESKEY_xmfile} name=$DOMAIN_NAME >>>>>>>>> rc=$? >>>>>>>>> if [ $rc -ne 0 ]; then >>>>>>>>> return $OCF_ERR_GENERIC >>>>>>>>> --- >>>>>>>>> Here "xm create" probably fails if the guest is already created... >>>>>>>> It should fail too. Note that this is a race, but the race is >>>>>>>> anyway caused by the strange behaviour of xen. With the recent >>>>>>>> fix (or workaround) in the RA, this shouldn't be happening. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Dejan >>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Ulrich >>>>>>>>> >>>>>>>>> >>>>>>>>>>>> Dejan Muhamedagic <deja...@fastmail.fm> schrieb am 01.10.2013 um 12:24 in >>>>>>>>> Nachricht <20131001102430.GA4687@walrus.homenet>: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> On Tue, Oct 01, 2013 at 12:13:02PM +0200, Lars Marowsky-Bree wrote: >>>>>>>>>>> On 2013-10-01T00:53:15, Tom Parker <tpar...@cbnco.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Thanks for paying attention to this issue (not really a bug) as I am >>>>>>>>>>>> sure I am not the only one with this issue. For now I have set all my >>>>>>>>>>>> VMs to destroy so that the cluster is the only thing managing them but >>>>>>>>>>>> this is not super clean as I get failures in my logs that are not really >>>>>>>>>>>> failures. >>>>>>>>>>> It is very much a severe bug. >>>>>>>>>>> >>>>>>>>>>> The Xen RA has gained a workaround for this now, but we're also pushing >>>>>>>>>> Take a look here: >>>>>>>>>> >>>>>>>>>> https://github.com/ClusterLabs/resource-agents/pull/314 >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> Dejan >>>>>>>>>> >>>>>>>>>>> the Xen team (where the real problem is) to investigate and fix. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> Lars >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Architect Storage/HA >>>>>>>>>>> SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, >>>>>>>>>> HRB 21284 (AG Nürnberg) >>>>>>>>>>> "Experience is the name everyone gives to their mistakes." -- Oscar Wilde >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Linux-HA mailing list >>>>>>>>>>> Linux-HA@lists.linux-ha.org >>>>>>>>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>>>>>>>> See also: http://linux-ha.org/ReportingProblems >>>>>>>>>> _______________________________________________ >>>>>>>>>> Linux-HA mailing list >>>>>>>>>> Linux-HA@lists.linux-ha.org >>>>>>>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>>>>>>> See also: http://linux-ha.org/ReportingProblems >>>>>>>>> _______________________________________________ >>>>>>>>> Linux-HA mailing list >>>>>>>>> Linux-HA@lists.linux-ha.org >>>>>>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>>>>>> See also: http://linux-ha.org/ReportingProblems >>>>>>>> _______________________________________________ >>>>>>>> Linux-HA mailing list >>>>>>>> Linux-HA@lists.linux-ha.org >>>>>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>>>>> See also: http://linux-ha.org/ReportingProblems >>>>>>> _______________________________________________ >>>>>>> Linux-HA mailing list >>>>>>> Linux-HA@lists.linux-ha.org >>>>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>>>> See also: http://linux-ha.org/ReportingProblems >>>>>> _______________________________________________ >>>>>> Linux-HA mailing list >>>>>> Linux-HA@lists.linux-ha.org >>>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>>> See also: http://linux-ha.org/ReportingProblems >>>>> _______________________________________________ >>>>> Linux-HA mailing list >>>>> Linux-HA@lists.linux-ha.org >>>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>>> See also: http://linux-ha.org/ReportingProblems >>>> _______________________________________________ >>>> Linux-HA mailing list >>>> Linux-HA@lists.linux-ha.org >>>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>>> See also: http://linux-ha.org/ReportingProblems >>> _______________________________________________ >>> Linux-HA mailing list >>> Linux-HA@lists.linux-ha.org >>> http://lists.linux-ha.org/mailman/listinfo/linux-ha >>> See also: http://linux-ha.org/ReportingProblems >> _______________________________________________ >> Linux-HA mailing list >> Linux-HA@lists.linux-ha.org >> http://lists.linux-ha.org/mailman/listinfo/linux-ha >> See also: http://linux-ha.org/ReportingProblems _______________________________________________ Linux-HA mailing list Linux-HA@lists.linux-ha.org http://lists.linux-ha.org/mailman/listinfo/linux-ha See also: http://linux-ha.org/ReportingProblems