[Pkg-xen-devel] Bug#671750: Configuration of domain save/restore broken

Iustin Pop iustin at debian.org
Sun May 6 17:02:46 UTC 2012


Package: xen-utils-common
Version: 4.1.2-5
Severity: grave

Hi,

Between 4.1.2-3 and 4.1.2-5, the sanity checks on the variables
defined in /etc/default/xendomains (XENDOMAINS_SAVE,
XENDOMAINS_RESTORE, etc.) was lost. I can't check exactly when because
there's no Vcs defined for this package.

4.1.2-3 had in /etc/init.d/xendomains for restore:
    if [ "$XENDOMAINS_RESTORE" = "true" ] &&
       contains_something "$XENDOMAINS_SAVE"
    then …

 and for rdnames:
    if ! contains_something "$XENDOMAINS_AUTO"
    then
        return
    fi
 etc.

4.1.2-5 has unconditionally for start restore:
   for file in $XENDOMAINS_SAVE/*; do
    if [ -f $file ] ; then
     …

 and for stop_save:

  while read id name rest; do
    log_action_begin_msg "Saving Xen domain $name ($id)"
    mkdir -p "$XENDOMAINS_SAVE"

Both these break with an empty XENDOMAINS_SAVE, even though this is
still documented to work.

Furthermore, the XENDOMAINS_AUTO setting is even more broken: when set
to empty (per the docs), it is again not checked and leads to this
init script sending random files to Xen (hence the high severity):

gnta2:~# /etc/init.d/xendomains start
[FAIL] Restoring Xen domain initrd.img (/initrd.img)...failed.
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/xm", line 8, in <module>
    main.main(sys.argv)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 3983, in main
    _, rc = _run_cmd(cmd, cmd_name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 4007, in _run_cmd
    return True, cmd(args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 923, in xm_restore
    server.xend.domain.restore(savefile, paused)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 124, in __request
    response = xmlrpclib.ServerProxy.__request(self, methodname, params)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
    verbose=self.__verbose
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 56, in request
    request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1467, in parse_response
    p.feed(data)
  File "/usr/lib/python2.7/xmlrpclib.py", line 557, in feed
    self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 11, column 52
[FAIL] Restoring Xen domain initrd.img.old (/initrd.img.old)...failed.
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/xm", line 8, in <module>
    main.main(sys.argv)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 3983, in main
    _, rc = _run_cmd(cmd, cmd_name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 4007, in _run_cmd
    return True, cmd(args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 923, in xm_restore
    server.xend.domain.restore(savefile, paused)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 124, in __request
    response = xmlrpclib.ServerProxy.__request(self, methodname, params)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
    verbose=self.__verbose
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 56, in request
    request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1467, in parse_response
    p.feed(data)
  File "/usr/lib/python2.7/xmlrpclib.py", line 557, in feed
    self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 11, column 52
[FAIL] Restoring Xen domain vmlinuz (/vmlinuz)...failed.
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/xm", line 8, in <module>
    main.main(sys.argv)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 3983, in main
    _, rc = _run_cmd(cmd, cmd_name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 4007, in _run_cmd
    return True, cmd(args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 923, in xm_restore
    server.xend.domain.restore(savefile, paused)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 124, in __request
    response = xmlrpclib.ServerProxy.__request(self, methodname, params)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
    verbose=self.__verbose
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 56, in request
    request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1467, in parse_response
    p.feed(data)
  File "/usr/lib/python2.7/xmlrpclib.py", line 557, in feed
    self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 11, column 54
[FAIL] Restoring Xen domain vmlinuz.old (/vmlinuz.old)...failed.
Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/xm", line 8, in <module>
    main.main(sys.argv)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 3983, in main
    _, rc = _run_cmd(cmd, cmd_name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 4007, in _run_cmd
    return True, cmd(args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py", line 923, in xm_restore
    server.xend.domain.restore(savefile, paused)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 124, in __request
    response = xmlrpclib.ServerProxy.__request(self, methodname, params)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
    verbose=self.__verbose
  File "/usr/lib/xen-4.1/bin/../lib/python/xen/util/xmlrpcclient.py", line 56, in request
    request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1467, in parse_response
    p.feed(data)
  File "/usr/lib/python2.7/xmlrpclib.py", line 557, in feed
    self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 11, column 52
Error: [Errno 21] Is a directory: '/bin'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/bin).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/bin'
Error: [Errno 21] Is a directory: '/boot'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/boot).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/boot'
Error: [Errno 21] Is a directory: '/cdrom'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/cdrom).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/cdrom'
Error: [Errno 21] Is a directory: '/dev'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/dev).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/dev'
Error: [Errno 21] Is a directory: '/etc'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/etc).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/etc'
Error: [Errno 21] Is a directory: '/home'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/home).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/home'
Error: Errors were found at line 1 while processing /initrd.img:
        None
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/initrd.img).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: Errors were found at line 1 while processing /initrd.img:
        None
Error: Errors were found at line 1 while processing /initrd.img.old:
        None
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/initrd.img.old).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: Errors were found at line 1 while processing /initrd.img.old:
        None
Error: [Errno 21] Is a directory: '/lib'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/lib).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/lib'
Error: [Errno 21] Is a directory: '/lib64'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/lib64).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/lib64'
Error: [Errno 21] Is a directory: '/lost+found'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/lost+found).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/lost+found'
Error: [Errno 21] Is a directory: '/media'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/media).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/media'
Error: [Errno 21] Is a directory: '/mnt'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/mnt).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/mnt'
Error: [Errno 21] Is a directory: '/opt'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/opt).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/opt'
Error: [Errno 21] Is a directory: '/proc'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/proc).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/proc'
Error: [Errno 21] Is a directory: '/root'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/root).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/root'
Error: [Errno 21] Is a directory: '/run'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/run).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/run'
Error: [Errno 21] Is a directory: '/sbin'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/sbin).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/sbin'
Error: [Errno 21] Is a directory: '/selinux'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/selinux).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/selinux'
Error: [Errno 21] Is a directory: '/srv'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/srv).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/srv'
Error: [Errno 21] Is a directory: '/sys'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/sys).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/sys'
Error: [Errno 21] Is a directory: '/tmp'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/tmp).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/tmp'
Error: [Errno 21] Is a directory: '/usr'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/usr).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/usr'
Error: [Errno 21] Is a directory: '/var'
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/var).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: [Errno 21] Is a directory: '/var'
Error: Errors were found at line 1 while processing /vmlinuz:
        None
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/vmlinuz).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: Errors were found at line 1 while processing /vmlinuz:
        None
Error: Errors were found at line 1 while processing /vmlinuz.old:
        None
/etc/init.d/xendomains: line 114: domains: bad array subscript
[....] Starting Xen domain  (/vmlinuz.old).../etc/init.d/xendomains: line 121: domains: bad array subscript
failed.
Error: Errors were found at line 1 while processing /vmlinuz.old:
        None


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.11-ruru0 (SMP w/4 CPU cores)
Locale: LANG=ro_RO.UTF-8, LC_CTYPE=ro_RO.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-xen-devel/attachments/20120506/2f7af1b5/attachment.pgp>


More information about the Pkg-xen-devel mailing list