[CentOS] xendomains not starting at boot

Wed Aug 31 10:32:15 UTC 2011
Theo Band <theo.band at greenpeak.com>

On one of my xen hosts a virtual machine does not start at boot. I can
see that xendomains gives an error:

service xendomains start
Starting auto Xen domains: fszeleNo handlers could be found for logger
"xend"
Error: Disk isn't accessible
No handlers could be found for logger "xend"
Error: Disk isn't accessible

An error occured while creating domain fszele: Usage: xm create
<ConfigFile> [options] [vars]

Create a domain based on <ConfigFile>.

Options:

-h, --help           Print this help.
--help_config        Print the available configuration variables (vars)
                     for the configuration script.
-q, --quiet          Quiet.
--path=PATH          Search path for configuration scripts. The value of
                     PATH is a colon-separated directory list.
-f=FILE, --defconfig=FILE
                     Use the given Python configuration script.The
                     configuration script is loaded after arguments have
                     been processed. Each command-line option sets a
                     configuration variable named after its long option
                     name, and these variables are placed in the
                     environment of the script before it is loaded.
                     Variables for options that may be repeated have list
                     values. Other variables can be set using VAR=VAL on
                     the command line. After the script is loaded, option
                     values that were not set on the command line are
                     replaced by the values set in the script.
-F=FILE, --config=FILE
                     Domain configuration to use (SXP).
                     SXP is the underlying configuration format used by
                     Xen.
                     SXP configurations can be hand-written or generated
                     from Python configuration scripts, using the -n
                     (dryrun) option to print the configuration.
-n, --dryrun         Dry run - prints the resulting configuration in SXP
                     but does not create the domain.
-p, --paused         Leave the domain paused after it is created.
-c, --console_autoconnect
                     Connect to the console after the domain is created.

!
[failed]                                                   [FAILED]


The actual command executed turns out to be:

XMC=`xm create --quiet --defconfig $dom`
where dom=/etc/xen/auto/fszele

If I issue the command from the command line, the dom starts as
expected. After some debugging on /etc/init.d/xendomains it turns out to
work if I change this line:

diff xendomains*
283c283
<               XMC=$(xm create --quiet --defconfig $dom)
---
>               XMC=`xm create --quiet --defconfig $dom`

or

diff xendomains*
283c283
<               XMC=`echo debug;xm create --quiet --defconfig $dom`
---
>               XMC=`xm create --quiet --defconfig $dom`

So I fixed the problem using $() instead of back-ticks, but I like to
understand what can be the root cause of this problem. It seems to
happen on only one of my hosts.


cat /etc/redhat-release
CentOS release 5.6 (Final)
rpm -qf xendomains
xen-3.0.3-120.el5_6.3
uname -a
Linux xenzele.greenpeak.com 2.6.18-238.19.1.el5xen #1 SMP Fri Jul 15
08:16:59 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

Theo