[Piuparts-devel] How important are empty directories?

Helmut Grohne helmut at subdivi.de
Thu Aug 24 16:46:57 BST 2023


Hi release team,

as part of finishing the /usr-merge, I've written down the most
important bits at https://subdivi.de/~helmut/dep17.html. In this mail,
I'm concerned with P6, i.e. loss of empty directories. The general
scenario is that one package ships an empty directory and another
package also ships that directory (empty or not) with different
aliasing (e.g. one package has an empty /usr/lib/foo and the other has
/lib/foo). When removing (or upgrading) the other package, the empty
directory may be deleted causing an inconsistency between the dpkg
database and the filesystem. This inconsistency is detected e.g. by
piuparts, which may fail. This is how Andreas Beckmann originally
discovered this problem class.

As a result, I've started filing patches for this problem class.
https://udd.debian.org/cgi-bin/bts-usertags.cgi?user=helmutg%40debian.org&tag=dep17p6
In the majority of cases, such empty directories are more of a bug than
a feature and we can simply delete them. In some cases, they really are
used though. When they are used, we need to do something about that
deletion and I've submitted e.g.
https://salsa.debian.org/systemd-team/systemd/-/merge_requests/208 where
I got negative feedback on the need to address this.

So how important is it to have these empty directories? I concur with
Michael on the aspect that their loss rarely poses a practical issue. It
can make piuparts fail however and when it does, the failing package
tends to not be the one that is able to fix the failure. So in effect,
keeping these bugs would cause latent migration blockers. For this
reason, I was assuming the bug class to be release critical. Do you
concur?

If we want it to not be release critical, I think we'd have to augment
piuparts in a way that it ignores such directory loss.

On the flip side, systemd has been the last package for me to file a
patch where this issue has practical consequences already. All others
have been filed already. Beyond these, there are five more cases on the
horizon that likely need to be mitigated when we lift the moratorium.

So while the mitigation is ugly, the low number of affected packages and
the temporary nature of the mitigation made me conclude that doing this
is a reasonable trade-off. Do you agree?

Another example for the ugliness is #1050412.

Helmut




More information about the Piuparts-devel mailing list