On 30 Sep 2011, at 13:50, Ian Campbell wrote:
>
> On Fri, 2011-09-30 at 13:22 +0100, Jonathan Ludlam wrote:
>> Ah, that's a shame. I was hoping this was a bugfix to the ocaml
>> xenstored and that the C version already did this. Unfortunately the
>> patch here went in to XenServer a couple of years ago, and Thomas, who
>> made the change, has since left. I'll dig into this and see why we
>> depend upon it.
>
> Seems to be CA-30927 which was "internal shutdown doesn't work anymore
> after VM.checkpoint":
>
> The bugs comes from the fact that xal always assume that
> suspended domains are or will be soon dead.
>
> However, for VM.checkpoint that assumptions is false, as the VM
> is suspended, snapshoted, and then resumed, without destroying
> the domain.
>
> Thomas said in that ticket:
>
> I fixed this issue by:
> * teach to xal how to handle dead domains for suspended
> reasons which become suddenly alive
> * when resuming a domain, use the xenstore introduce call
> * modify xenstore to generates a @introduceDomain event
> even if the introduced domain does not exists
>
> I believe nobody care to see too many @introduceDomain event, so
> that will not change anything. My fix modifies the code path
> taken by VM.suspend, but that should be safe because xapi
> destroys properly the domain after suspending it.
>
> (I think he meant _does_ exist in the third bullet). In his commit
> message he said:
>
> Teach xal what to do with dead domains which become alive again.
>
> Needed to modify xenstored as well in order to trigger a
> @introduceDomain event even if the introduce call tries to
> introduce an already existing domain. That will kick-up xal in
> case when resuming the domain.
>
> I think possibly the right fix would have been to have xal kick-up
> itself. That said spurious @introduceDomain watches are pretty harmless
> (as he suggests) since they have no context, the recipient has to go and
> check it's idea of the world vs the real state to know what happened an
> the answer "nothing" is not a big deal...
>
I think you're right that the fix should go into xal. Please don't commit this
particular patch; we'll keep it in our patch queue until we can fix it properly
in xapi.
Jon
> Ian.
>
>
>>
>> Jon
>>
>> On 30 Sep 2011, at 08:49, Ian Campbell wrote:
>>
>>> On Thu, 2011-09-29 at 22:17 +0100, Jon Ludlam wrote:
>>>> Have xenstored trigger an @introduceDomain event even if the
>>>> introduce call tries to introduce an already existing domain.
>>>
>>> The C daemon doesn't appear to behave this way. It would be nice to
>>> explain why this change is necessary.
>>>
>>>> Signed-off-by: Thomas Gazagnaire <thomas@xxxxxxxxxxxx>
>>>> Acked-by: Jon Ludlam <jonathan.ludlam@xxxxxxxxxxxxx>
>>>>
>>>> diff -r 734cb0807357 -r b6022a18ebb0 tools/ocaml/xenstored/process.ml
>>>> --- a/tools/ocaml/xenstored/process.ml
>>>> +++ b/tools/ocaml/xenstored/process.ml
>>>> @@ -168,9 +168,10 @@
>>>> | _ -> raise Invalid_Cmd_Args;
>>>> in
>>>> let dom =
>>>> - if Domains.exist domains domid then
>>>> + if Domains.exist domains domid then begin
>>>> + Connections.fire_spec_watches cons "@introduceDomain";
>>>> Domains.find domains domid
>>>> - else try
>>>> + end else try
>>>> let ndom = Xc.with_intf (fun xc ->
>>>> Domains.create xc domains domid mfn port) in
>>>> Connections.add_domain cons ndom;
>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>>>> http://lists.xensource.com/xen-devel
>>>
>>>
>>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|