[Pkg-xen-devel] upgrade report (2.0.6 -> 3.0-testing+pkgxen)

Ralph Passgang ralph at debianbase.de
Thu Mar 2 23:22:39 UTC 2006


Hi,

so here is finally my upgrade report for my testsystem. I tried to upgrade to 
xen3 while xen2 (hypervisor, dom0 kernel + 1 domU) was running:

1) if xen2 (adams latest packages in this case) were installed and we would 
release our package as it is, we would generate the following enviorment:

# apt-get upgrade -u
Reading package lists... Done
Building dependency tree... Done
The following packages have been kept back:
  libxen-python xen
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

# apt-get dist-upgrade -u
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  libxen2.0 xen
The following NEW packages will be installed:
  libxen3.0
The following packages will be upgraded:
  libxen-python
1 upgraded, 1 newly installed, 2 to remove and 0 not upgraded.
Need to get 0B/464kB of archives.

so on a upgrade nothing would happen, xen and libxen-python is only kept back. 
on a dist-upgrade libxen2.0 and xen gets removed and libxen3.0 gets installed 
and the libxen-python package gets updated, but no xen-hypervisor-3.0 or 
xen-utils-3.0 gets installed. so this would brake old xen2 setups without 
installing all needed stuff for xen3.

2) On the actual upgrade this happend:

(Reading database ... 52207 files and directories currently installed.)
Removing xen ...
/usr/lib/python2.3/site-packages/xen/xend/server/SrvDir.py:3: 
DeprecationWarning: twisted.protocols.http has moved to twisted.web.http. See 
http://twistedmatrix.com/projects/web.
  from twisted.protocols import http
Shutting down all Xen domains:(111, 'Connection refused')
Error: Error connecting to xend, is xend running?
*
invoke-rc.d: initscript xendomains, action "stop" failed.
dpkg: error processing xen (--remove):
 subprocess pre-removal script returned error exit status 1
 System startup links for /etc/init.d/xend already exist.
/usr/lib/python2.3/site-packages/xen/xend/server/SrvDir.py:3: 
DeprecationWarning: twisted.protocols.http has moved to twisted.web.http. See 
http://twistedmatrix.com/projects/web.
  from twisted.protocols import http
/usr/lib/python2.3/site-packages/xen/xend/server/SrvDir.py:3: 
DeprecationWarning: twisted.protocols.http has moved to twisted.web.http. See 
http://twistedmatrix.com/projects/web.
  from twisted.protocols import http
 System startup links for /etc/init.d/xendomains already exist.
Starting auto Xen domains:
Errors were encountered while processing:
 xen
E: Sub-process /usr/bin/dpkg returned an error code (1)

So an upgrade is not working very well, but it comes worse: apt-get install -f 
is not reporting more errors:

# apt-get install -f
Reading package lists... Done
Building dependency tree... Done
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

so what's next? I tried to upgrade/install the packages again but it fails 
exactly with the same error. Even purging the xen package (also with 
--force-all) fails. the only solution I found was 
edit /var/lib/dpkg/info/xen.prerm and to remove the faulty xend and 
xendomains lines.

by doing this the upgrade finally worked without further problems.

at the end only xend couldn't start, but that was obviouis and fixed after 
installing a xen3 kernel and rebooting the system.

so far so good. the upgrade problems seems to exist because of adams xen.prerm 
script. All other aspects of the upgrading seems to work fine. The question 
is what to do to help the user upgrading from 2.0.6 to 3.0.1 without having 
this kind of problems. is there anything we can do? I guess, that we cannot 
do more then just warning the user that this will happen if xen2 is running 
while upgrading and strongly advice to use a normal (not xen-enabled) kernel 
while upgrading.

3) I noticed that the "xen" packages get removed all the time and I realized 
that our "xen" metapackage depends on xen-utils and xen-hypervisor but we 
only provide xen-utils-3.0 and xen-hypervisor-3.0, so I changed that by 
adding the needed "Provides:" to xen-utils-3.0 and xen-hypervisor-3.0.

Then "dist-upgrade" was happy and wanted to do this on a upgrade from 2.0.6 -> 
3.0.1:

# apt-get dist-upgrade -u
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  libxen2.0
The following NEW packages will be installed:
  libxen3.0 xen-hypervisor-3.0 xen-utils-3.0
The following packages will be upgraded:
  libxen-python xen
2 upgraded, 3 newly installed, 1 to remove and 0 not upgraded.
Need to get 0B/1863kB of archives.

But that failed because of the problem I saw earlier with my "tha" packages 
from debianbase.de. If the "xen" package is not removed at the upgrade we 
have the following problem:

dpkg: error 
processing /download/.//xen-hypervisor-3.0_3.0.1+hg8746-0+1_i386.deb 
(--unpack):
 trying to overwrite `/boot/xen.gz', which is also in package xen

&

dpkg: error processing /download/.//libxen-python_3.0.1+hg8746-0+1_i386.deb 
(--unpack):
 trying to overwrite `/usr/lib/python2.3/site-packages/xen/sv/Wizard.py', 
which is also in package xen
dpkg-deb: subprocess paste killed by signal (Broken pipe)

But this is "fixable" by running apt-get install -f, but how to deal with this 
in our packages?

(I guess Julien haven't saw that, because on his test he removed the xen 
package instead of upgrading it).

--Ralph



More information about the Pkg-xen-devel mailing list