[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4 of 7] [OCAML] Fix a problem with ocaml xenstored
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |