[Libvir] Re: support for hvm guests
Jim Fehlig
jfehlig at novell.com
Tue May 9 23:57:52 UTC 2006
Jim Fehlig wrote:
> Anthony Liguori wrote:
>
[snip]
> Continuing in the debugger I find that all routines complete up to
> process() in httpserver.py line 110 (note that my line numbers may be
> skewed a little due to insertion of debug code). After executing the
> statement "res = req.process()", I take the else clause of "if
> isinstance(res, ThreadRequest):" - which calls req.finish() which in
> turn closes the connection. So no response is sent to libvirt, which
> is blocked waiting to read something from xend.
>
> As mentioned before, if I ignore reading a response from xend on the
> create op and go directly to wait_for_devices and unpause then the
> guest is launched as expected. BTW, I do get responses from xend on
> wait_for_devices and unpause ops.
>
>> The path is a normal domain_create(). The path within Xend is
>> server/XMLRPCServer.py but that's a very thin wrapper around a direct
>> call to XendDomain.py:domain_create(). domain_create() should always
>> return. If it's not, there's a bug in Xend I think.
>
>
>
> Not in the case of libvirt - see above.
>
>> Can you give me a very concrete test case for this? The exact
>> parameters being passed to domain_create() (it should just be an
>> S-Expression config).
>
>
>
> Sent in a previous post.
>
> I will look into this more tomorrow - have other fires that need
> attention now.
Tomorrow ended up being several days later :-). I looked at this again
today and must say that this is a frustrating bug - feeling like some
CS101 student.
So I was wrong in stating that xend does not respond to the create op
issued by libvirt. I get the expected response from xend but the
connection is not closed upon completing the request, thus I set in some
read loop in libvirt waiting for eof. I stepped through the request
processing code in xend for create op for both paravirtualized and hvm
guests and all seems fine, i.e. request is processed, finished, socket
closed, etc. in httpserver.py. Looking at a packet trace shows
connection is terminated for paravirt case (which breaks out of the read
loop in libvirt) but not so for hvm case.
Don't think I want to waste anymore time with this bug since the http /
sexp interface is going away - which brings me to a question. Why is
libvirt still using this interface and not xmlrpc? Perhaps my time
would be better spent moving libvirt to this interface. I would like to
submit the hvm patch for libvirt but can't reliably test it at this point.
Regards,
Jim
More information about the libvir-list
mailing list