[Piuparts-devel] Bug#671629: piuparts: Piuparts purge order

Dave Steele dsteele at gmail.com
Sat May 5 13:48:58 UTC 2012


Package: piuparts
Version: 0.43
Severity: Normal
User: debian-qa at lists.debian.org
Usertags: piuparts

A quick review. The packages docbook-xsl and sgml-data have been
persistently failing piuparts testing, and are currently responsible
for 490 packages being held in dependency-failed-testing in
piuparts.d.o sid, out of 1150 packages in that state. The error
consists of the directories /etc/xml and /etc/sgml being left over
after purge. Those directories, 'owned' by xml-core and sgml-base,
respectively, are not being deleted because they are not empty when
the owner is purged. They would be empty if the purge order respected
dependencies.

There are a number of open bugs addressing this situation. Bug #316521
suggests that dpkg delete empty directories, so that purging order is
not important. Bugs #611418 and #664822 advocate some discipline in
debhelper for this particular situation.

BTW, forensics I did for #611418 suggest that the blocked packages
have never been tested by piuparts.d.o.

The latest test logs for docbook-xsl and sgml-data show interesting
behavior. A portion of the sgml-data log is attached below. The
packages in the first dpkg command seen in the snippet appear to be
purged in the proper order, with xml-core and sgml-base saved for
last. I don't remember that being the case before - perhaps it is a
consequence of the patch for #454694, released with dpkg 1.16.1
(changelog entry "Do not lose track of parent directories on removal
so that they can be properly cleaned up on purge if not used by any
other package.").

However, the failure remains, caused here by the fact that piuparts is
purging sgml-data after purging its dependencies, instead of before.

That doesn't seem like a fair thing to do to dpkg.

Is there a reason for doing the purges in that order? If not, consider
merging the git purge_order branch, which causes the
package-under-test to be purged before its dependencies:

    git:        https://github.com/davesteele/piuparts
    commit: https://github.com/davesteele/piuparts/commit/452c5537d0a813477d432366a0add03be58b8435

sgml-data and docbook-xsl pass piuparts after the change.

-----------------------------------------------------

Start: 2012-03-29 11:59:09 UTC

Package: sgml-data
Version: 2.0.6
...
0m20.0s DEBUG: Starting command: ['chroot',
'/org/piuparts.debian.org/tmp/tmpYSmeVC', 'eatmydata', 'dpkg',
'--purge', 'libclass-isa-perl', 'perl-modules', 'libswitch-perl',
'libgdbm3:amd64', 'perl', 'xml-core', 'sgml-base']
0m20.0s DUMP:
  dpkg: warning: ignoring request to remove libclass-isa-perl which
isn't installed.
  (Reading database ... 6678 files and directories currently installed.)
  Removing perl-modules ...
  Purging configuration files for perl-modules ...
  dpkg: warning: ignoring request to remove libswitch-perl which isn't
installed.
  Removing libgdbm3:amd64 ...
  Purging configuration files for libgdbm3:amd64 ...
  dpkg: warning: ignoring request to remove perl which isn't installed.
  Removing xml-core ...
  Purging configuration files for xml-core ...
  dpkg: warning: while removing xml-core, directory '/etc/sgml' not
empty so not removed.
  dpkg: warning: while removing xml-core, directory '/etc/xml' not
empty so not removed.
  Removing sgml-base ...
  Purging configuration files for sgml-base ...
0m20.0s DEBUG: Command ok: ['chroot',
'/org/piuparts.debian.org/tmp/tmpYSmeVC', 'eatmydata', 'dpkg',
'--purge', 'libclass-isa-perl', 'perl-modules', 'libswitch-perl',
'libgdbm3:amd64', 'perl', 'xml-core', 'sgml-base']
0m20.0s DEBUG: Starting command: ['chroot',
'/org/piuparts.debian.org/tmp/tmpYSmeVC', 'eatmydata', 'dpkg',
'--purge', 'sgml-data']
0m20.1s DUMP:
  (Reading database ... 6673 files and directories currently installed.)
  Removing sgml-data ...
  Purging configuration files for sgml-data ...
0m20.1s DEBUG: Command ok: ['chroot',
'/org/piuparts.debian.org/tmp/tmpYSmeVC', 'eatmydata', 'dpkg',
'--purge', 'sgml-data']
...
0m23.1s ERROR: FAIL: Package purging left files on system:
  /etc/sgml	 owned by: xml-core, sgml-data
  /etc/xml	 owned by: xml-core, sgml-data





More information about the Piuparts-devel mailing list