[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-API] race condition during /etc/xensource/scripts/vif call



Try doing the xenstore-ls before the xenstore-rm to see whether it's definitely 
a race or not. 

Jon

On 23 Sep 2011, at 04:04, George Shuklin wrote:

> Ok, may be I was wrong and shall not use any /xapi keys on interface 
> remove. Right now I switched from xapi usage to '$vsctl port-to-br'. But 
> any way, this is kinda strange - why /xapi entery dissapear before 
> interface completely shutdown?
> 
> On 23.09.2011 03:07, Jonathan Ludlam wrote:
>> Interesting - it might be that you're racing with xapi - it's waiting for 
>> the hot plug key to be removed, which is what the xenstore-rm does. Have a 
>> look here:
>> 
>> https://github.com/xen-org/xen-api/blob/master/ocaml/xenops/device.ml#L752
>> 
>> (Note that this is more current than XCP 1.0 or 1.1, but the general gist is 
>> the same)
>> 
>> Jon
>> 
>> On 22 Sep 2011, at 16:18, George Shuklin wrote:
>> 
>>> Good day.
>>> 
>>> Found strange situation for VM with two or more interfaces: data
>>> from /xapi for domain disappear before vif remove called second time.
>>> 
>>> Here little patch to vif script (against XCP 1.1 beta) to log XenStore
>>> state:
>>> 
>>> --- vif.orig        2011-05-19 02:32:19.000000000 +0400
>>> +++ vif     2011-09-22 19:11:10.000000000 +0400
>>> @@ -227,6 +227,8 @@
>>>         xenstore-rm "${HOTPLUG}/hotplug"
>>>     fi
>>>     logger -t scripts-vif "${dev} has been removed"
>>> +    echo ====domid=$DOMID=====>>/var/log/vif-race.log
>>> +    xenstore-ls /xapi>>/var/log/vif-race.log
>>>     remove_from_bridge
>>>     ;;
>>> esac
>>> 
>>> 
>>> To see 'strange' add to any vm two interfaces and reboot it.
>>> 
>>> In vif-race.log for second time vif call:
>>> ====domid=3=====
>>> 0 = ""
>>> hotplug = ""
>>>  vbd = ""
>>> private = ""
>>>  vbd = ""
>>>   51712 = ""
>>>    ref = "OpaqueRef:1a7992ae-a645-acc6-bf51-3a0202bdd4c7"
>>> frontend = ""
>>>  vbd = ""
>>> 3:
>>> 
>>> (no data for domid 3).
>>> 
>>> I'm not sure if this is a really serious bug, but I found my
>>> antispoofing patch does not remove rules from OVS for multihomed VM's
>>> due lack of 'bridge' variable for VIF (I'm calling remove_restiction()
>>> function in 'remove' case in vif script).
>>> 
>>> I got this bug in XCP 1.0 and XCP1.1 beta.
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> xen-api mailing list
>>> xen-api@xxxxxxxxxxxxxxxxxxx
>>> http://lists.xensource.com/mailman/listinfo/xen-api
>> 
>> _______________________________________________
>> xen-api mailing list
>> xen-api@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/mailman/listinfo/xen-api
> 
> _______________________________________________
> xen-api mailing list
> xen-api@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/mailman/listinfo/xen-api


_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.