[Libvir] possible bug in virDomainLookupByID

Bryan D. Payne bryan at thepaynes.cc
Tue Jul 18 16:57:23 UTC 2006


> You dont mention whether you are running the test case as root or an
> unprivileged user ?  Also what config options are in your /etc/xen/xend-config.sxp
> file ?

I'm running as root.  My xend-config is attached.

> As root your test case succeeds in getting the XML.
> As non-root, I see a failure on the first call - the test case is a little
> bit misleading though - virDomainLookupByID is working fine - the place I
> see failure  is in the virDomainGetXMLDesc - which is because the setuid
> proxy doesn't not yet support fetching the XML.

In my case, the failure is with virDomainLookupByID.  For example, I get
the following output:

[root at guinness examples]# ./test
(0) (null)
ERROR: Failed to find Domain 1
Failed on second try
[root at guinness examples]#

> reproduce the problem here. Oh, what Xen version and distro are you using
> And is it 32 or 64 bit would be helpful

[root at guinness examples]# xm info
host                   : guinness.beer.home
release                : 2.6.16-xen
version                : #1 SMP Tue Jun 20 22:00:41 EDT 2006
machine                : i686
nr_cpus                : 1
nr_nodes               : 1
sockets_per_node       : 1
cores_per_socket       : 1
threads_per_core       : 1
cpu_mhz                : 2202
hw_caps                :
078bfbff:e3d3fbff:00000000:00000010:00000000:00000001:00000001
total_memory           : 2048
free_memory            : 1
xen_major              : 3
xen_minor              : 0
xen_extra              : .2-2
xen_caps               : xen-3.0-x86_32
platform_params        : virt_start=0xfc000000
xen_changeset          : Thu Apr 13 15:18:37 2006 +0100 9617:5802713c159b
cc_compiler            : gcc version 4.1.1 20060525 (Red Hat 4.1.1-1)
cc_compile_by          : root
cc_compile_domain      : beer.home
cc_compile_date        : Tue Jun 20 22:02:29 EDT 2006
[root at guinness examples]#

I'm running xen 3.0.2-2, built from source.  My machine is running FC5
(32-bit).  When I tested the two libvirt versions, I build both directly
from source using the standard (./configure ; make ; make install).

> I'm curious - what is XenAccess you mention here ? Is this some application
> being developed with libvirt ?

Yes, XenAccess is a project that I'm working on to provide introspection
for Xen.  Currently, I use libvirt to obtain the kernel version of a
running domain, but may use it for more info in the future.  Details
available here:

http://xenaccess.sourceforge.net/

Thanks,
bryan
-------------- next part --------------
# -*- sh -*-

#
# Xend configuration file.
#

# This example configuration is appropriate for an installation that 
# utilizes a bridged network configuration. Access to xend via http
# is disabled.  

# Commented out entries show the default for that entry, unless otherwise
# specified.

#(logfile /var/log/xend.log)
#(loglevel DEBUG)

#(xend-http-server no)
#(xend-unix-server no)
#(xend-tcp-xmlrpc-server no)
#(xend-unix-xmlrpc-server yes)
#(xend-relocation-server no)
(xend-relocation-server yes)

#(xend-unix-path /var/lib/xend/xend-socket)

# Port xend should use for the HTTP interface, if xend-http-server is set.
#(xend-port            8000)

# Port xend should use for the relocation interface, if xend-relocation-server
# is set.
#(xend-relocation-port 8002)

# Address xend should listen on for HTTP connections, if xend-http-server is
# set.
# Specifying 'localhost' prevents remote connections.
# Specifying the empty string '' (the default) allows all connections.
#(xend-address '')
#(xend-address localhost)

# Address xend should listen on for relocation-socket connections, if
# xend-relocation-server is set.
# Meaning and default as for xend-address above.
#(xend-relocation-address '')

# The hosts allowed to talk to the relocation port.  If this is empty (the
# default), then all connections are allowed (assuming that the connection
# arrives on a port and interface on which we are listening; see
# xend-relocation-port and xend-relocation-address above).  Otherwise, this
# should be a space-separated sequence of regular expressions.  Any host with
# a fully-qualified domain name or an IP address that matches one of these
# regular expressions will be accepted.
#
# For example:
#  (xend-relocation-hosts-allow '^localhost$ ^.*\.example\.org$')
#
#(xend-relocation-hosts-allow '')
(xend-relocation-hosts-allow '^localhost$')

# The limit (in kilobytes) on the size of the console buffer
#(console-limit 1024)

##
# To bridge network traffic, like this:
#
# dom0: fake eth0 -> vif0.0 -+
#                            |
#                          bridge -> real eth0 -> the network
#                            |
# domU: fake eth0 -> vifN.0 -+
#
# use
#
# (network-script network-bridge)
#
# Your default ethernet device is used as the outgoing interface, by default. 
# To use a different one (e.g. eth1) use
#
# (network-script 'network-bridge netdev=eth1')
#
# The bridge is named xenbr0, by default.  To rename the bridge, use
#
# (network-script 'network-bridge bridge=<name>')
#
# It is possible to use the network-bridge script in more complicated
# scenarios, such as having two outgoing interfaces, with two bridges, and
# two fake interfaces per guest domain.  To do things like this, write
# yourself a wrapper script, and call network-bridge from it, as appropriate.
#
(network-script network-bridge)

# The script used to control virtual interfaces.  This can be overridden on a
# per-vif basis when creating a domain or a configuring a new vif.  The
# vif-bridge script is designed for use with the network-bridge script, or
# similar configurations.
#
# If you have overridden the bridge name using
# (network-script 'network-bridge bridge=<name>') then you may wish to do the
# same here.  The bridge name can also be set when creating a domain or
# configuring a new vif, but a value specified here would act as a default.
#
# If you are using only one bridge, the vif-bridge script will discover that,
# so there is no need to specify it explicitly.
#
(vif-script vif-bridge)


## Use the following if network traffic is routed, as an alternative to the
# settings for bridged networking given above.
#(network-script network-route)
#(vif-script     vif-route)


## Use the following if network traffic is routed with NAT, as an alternative
# to the settings for bridged networking given above.
#(network-script network-nat)
#(vif-script     vif-nat)


# Dom0 will balloon out when needed to free memory for domU.
# dom0-min-mem is the lowest memory level (in MB) dom0 will get down to.
# If dom0-min-mem=0, dom0 will never balloon out.
(dom0-min-mem 196)

# In SMP system, dom0 will use dom0-cpus # of CPUS
# If dom0-cpus = 0, dom0 will take all cpus available
(dom0-cpus 0)

# Whether to enable core-dumps when domains crash.
#(enable-dump no)


More information about the libvir-list mailing list