The fact that the supporters of a *filesystem layout* have been happy to dismiss and ignore this and have been pushing for what I think can be
easily described as the worst ever "transition" done in Debian, very
sadly, for me this whole topic marks a before and after in Debian, and
has put my trust in the technical side of the project into question.
Afaict we have still no idea on how to move on.
1 I think you agree that there is a significant number of usrmerged Debian
installations out there. It does not really matter whether there are 7% or
40%. They exist and should (keep) working.
2 As you have stated there are known issues with dpkg and usrmerged
systems. Some of them are are triggered by moving files from / to /usr.
Starting from here it is hard to see a way forward.
Is it a realistic option to require something like
-----
dpkg --purge usrmerge
dpkg-fsys-usrunmess
-----
pre dist-upgrade to bookworm to get back all systems to a sane (from
dpkg POV) state and start fresh?
Is this robust (except for crash as stated in the manpage), or would
you consider it beta-quality?
On 2021-08-20 23:15, Simon Richter wrote:
I think that one of the release goals should be that any freshlyinstalled
or upgraded system should have a dpkg database that is consistent with reality, and I'd prioritize that higher than actually finishing the transition, because as long as we can have files vanish from under us, we can't expect that the transition will be reliable for bullseye->bookworm updates.
Basically, we've been lucky so far.
I am not sure we have been so lucky. Problems have been found during the release cycles, some of them got fixed (#953562), some other are still
there (#926699).
--
Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
By my definition, these have never been working correctly, butIt is not semantics. You keep saying that countless Debian and Ubuntu
semantics I guess.
By my definition, these have never been working correctly, but
semantics I guess.
It is not semantics. You keep saying that countless Debian and Ubuntu
systems are not working correctly, but since this obviously does not
reflect the experience of the owners of these systems then just about everybody will believe that you are wrong about merged-/usr.
Hi,
On 8/26/21 8:38 AM, Marco d'Itri wrote:
By my definition, these have never been working correctly, but
semantics I guess.
It is not semantics. You keep saying that countless Debian and Ubuntu systems are not working correctly, but since this obviously does not reflect the experience of the owners of these systems then just about everybody will believe that you are wrong about merged-/usr.
Ideally the question whether a system works correctly would be a
technical, not a political one that is based on a majority vote of
people who do not look behind the facade.
Simon
On Thu, 2021-08-26 at 12:16 +0200, Simon Richter wrote:
Hi,
On 8/26/21 8:38 AM, Marco d'Itri wrote:
By my definition, these have never been working correctly, but
semantics I guess.
It is not semantics. You keep saying that countless Debian and Ubuntu
systems are not working correctly, but since this obviously does not
reflect the experience of the owners of these systems then just about
everybody will believe that you are wrong about merged-/usr.
Ideally the question whether a system works correctly would be a
technical, not a political one that is based on a majority vote of
people who do not look behind the facade.
Simon
Precisely - and the correct technical question is, how many bug reports
were opened by users?
Luca Boccassi <bluca@debian.org> writes:
On Thu, 2021-08-26 at 12:16 +0200, Simon Richter wrote:
Hi,
On 8/26/21 8:38 AM, Marco d'Itri wrote:
By my definition, these have never been working correctly, but semantics I guess.
It is not semantics. You keep saying that countless Debian and Ubuntu systems are not working correctly, but since this obviously does not reflect the experience of the owners of these systems then just about everybody will believe that you are wrong about merged-/usr.
Ideally the question whether a system works correctly would be a technical, not a political one that is based on a majority vote of people who do not look behind the facade.
Simon
Precisely - and the correct technical question is, how many bug reports were opened by users?
While I'm sympathetic with the argument that a lack of bug reports
suggests that the theoretical problems (that I hope we all agree, do
exist) seem not to be exhibiting themselves in the wild, it is very far
from proof.
If some random file disappears on your system one day, what happens?
Most likely, nothing, and you never notice.
Possibly, your system starts to misbehave. What do you do then?
If you're a naive user, such as a recent arrival from Windows, then misbehaviour is something that you've been trained to expect and you install from scratch. The idea of reporting a bug never enters your head.
If you're aware that this sort of thing really should not happen, then what happens next is probably down to how busy you are. If you're busy, you probably check your SMART stats, and having convinced yourself that the disks are OK, either restore from backup and check for what ealse is missing, or use debsums to see the extent of the damage and reinstall a package or two. Again, since you're only trying to get back to work, and didn't track down the cause, no bug report.
The only bug reports you're going to get about this are either going to
be the useless "Something didn't work" bugs, that I doubt would ever get
tied to this cause, or the ones submitted by experienced, diligent, and time-rich bug reporters (which is a rather rare combination).
The fact that we don't see bug reports should surprise no one.
Cheers, Phil.
Precisely - and the correct technical question is, how many bug
reports
were opened by users? Strawmen can always be constructed, for example
you can completely brick a system by running 'apt install bash:armhf'
but that doesn't mean multiarch should be scrapped and reverted, it
would be silly to suggest that - and yet here we are. Conversely this
doesn't mean the dpkg database bug shouldn't be fixed, so that the replace+move bug can't happen in the future, but it simply makes
overblown and hyperbolic ideas such as "all systems are broken,
revert
everything" and "let's cancel the TC decision" appear counter-
productive and deeply unhelpful toward finding an actual, realistic
solution.
Given this and the last few mails, it seems to me at this point the
only possible way forward is what Timo and Ted suggested the other
day,
namely to have an external tool, possibly part of src:usrmerge, scan
the dpkg database and fix it? Possibly on a trigger?
Ideally the question whether a system works correctly would be a
technical, not a political one that is based on a majority vote of
people who do not look behind the facade.
Precisely - and the correct technical question is, how many bug reports
were opened by users?
Strawmen can always be constructed, for example
you can completely brick a system by running 'apt install bash:armhf'
but that doesn't mean multiarch should be scrapped and reverted, it
would be silly to suggest that - and yet here we are.
Conversely this
doesn't mean the dpkg database bug shouldn't be fixed,
so that the
replace+move bug can't happen in the future, but it simply makes
overblown and hyperbolic ideas such as "all systems are broken, revert everything" and "let's cancel the TC decision" appear counter-
productive and deeply unhelpful toward finding an actual, realistic
solution.
Given this and the last few mails, it seems to me at this point the
only possible way forward is what Timo and Ted suggested the other day, namely to have an external tool, possibly part of src:usrmerge, scan
the dpkg database and fix it? Possibly on a trigger?
Hi,
On 8/26/21 1:17 PM, Luca Boccassi wrote:
Ideally the question whether a system works correctly would be a technical, not a political one that is based on a majority vote of
people who do not look behind the facade.
Precisely - and the correct technical question is, how many bug reports were opened by users?
That is the majority vote by people who do not look behind the facade.
Strawmen can always be constructed, for example
you can completely brick a system by running 'apt install bash:armhf'
but that doesn't mean multiarch should be scrapped and reverted, it
would be silly to suggest that - and yet here we are.
This is precisely the debate we would be having if there was a package
that enables armhf as a foreign architecture whenever it is installed:
it would not break systems on its own, but we'd have to be a lot more careful in other packages about expressing dependencies.
I have armhf enabled on my laptop, and the resolver has suggested
replacing bash:amd64 with bash:armhf a few times -- but I know that my
setup is unusual.
Conversely this
doesn't mean the dpkg database bug shouldn't be fixed,
Keep in mind that this isn't a dpkg bug, because dpkg never created a filesystem layout that was inconsistent with its database; usrmerge did.
What we are talking about is adding a workaround for the usrmerge
package to dpkg, and how to make sure that it works, regardless of
whether the system has already been converted or not, if it has, which version of usrmerge was used, whether the package is currently installed
or not, whether it will be installed as part of an upgrade and if so,
which state the dpkg package is in at the time it is installed.
For example, a possible scenario could be that the system was converted
with usrmerge version 9 (which modified dpkg.cfg), then the usrmerge
package was deinstalled as a later version declared a conflict that the
user resolved in favour of the other package, usrmerge hasn't been
installed since, then during the upgrade to bookworm, a new version of
dpkg is unpacked (but not configured yet), then a new version of
usrmerge is unpacked, and then dpkg --configure -a is run.
So we need a list of things that need to happen to get back into a consistent state and a way of sequencing that inside the package
dependency DAG.
so that the
replace+move bug can't happen in the future, but it simply makes
overblown and hyperbolic ideas such as "all systems are broken, revert everything" and "let's cancel the TC decision" appear counter-
productive and deeply unhelpful toward finding an actual, realistic solution.
The TC decision does not specify technical details, which was a grave mistake because the implementation was so shoddy that I doubt the TC
would have signed off on that, had they been consulted on the details.
Pretty much no one is interested in rolling this back, but a lot of
people, me included, are indifferent and cannot see the benefits,
especially as they consist mainly of things that used to work in the
past, were broken during the systemd rollout and subsequently declared
out of scope when people complained, so all users of these features have already left anyway.
An actual, realistic solution will work for all users, including those
who have now installed or upgraded to buster from DVD, run offline and
will upgrade to bookworm from DVD when it comes out.
Given this and the last few mails, it seems to me at this point the
only possible way forward is what Timo and Ted suggested the other day, namely to have an external tool, possibly part of src:usrmerge, scan
the dpkg database and fix it? Possibly on a trigger?
No. We couldn't sequence that correctly, we'd have to somehow make installation of the usrmerge package mandatory, and that tool would need
to touch the dpkg database at a point where dpkg is active in the background.
It makes a lot more sense to have a dpkg-internal tool that can
investigate the differences between the file system and the dpkg
database, resolve conflicts (possibly in an interactive process when required by a corner case like the one I mentioned earlier -- luckily,
these should be really rare) and then leave a consistent state again
that allows package maintainers to use all dpkg features again after the bookworm release.
It makes a lot more sense to have a dpkg-internal tool that canAgreed. Having yet another tool messing with dpkg "behind its back"
investigate the differences between the file system and the dpkg
database, resolve conflicts (possibly in an interactive process when >required by a corner case like the one I mentioned earlier -- luckily,
these should be really rare) and then leave a consistent state again
that allows package maintainers to use all dpkg features again after
the bookworm release.
Timo> However, Guillem also seems to think that dpkg can manage file"Timo" == Timo Röhling <roehling@debian.org> writes:
That may not matter so much for Debian (at least in some people's minds)I agree that this is a very convincing argument. A considerably
but being compatible with the rest of the world has enough value in this >instance that I consider the issue moot.
However, Guillem also seems to think that dpkg can manage file
symlinks in a real directory better than an directory symlinks in /,
which is why he proposed symlink farms in the first place.
On Sun, 2021-08-22 at 11:21:38 +0100, Luca Boccassi wrote:
On Sat, 2021-08-21 at 22:57 +0200, Guillem Jover wrote:
On Sat, 2021-08-21 at 18:47:50 +0100, Luca Boccassi wrote:
The bug is real, nobody doubts that - it has been filed on dpkg 20 years ago.
You keep repeating this, but I have no idea what bug you refer to.
There's #148258 (from 2002), which is conffile related, and not actionable and should probably just be closed.
There's #182747 (from 2003), which while apparently similar is
something else completely. This is about the (IMO) misfeature of supporting a local admin to redirect (not alias) a directory using a local symlink (mainly for space management reasons). For an
explanation
see <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779060#10>.
There's #406715 (from 2007) which is related to the above misfeature.
I am referring to #134758 since it's linked as the root cause from usrmerge's #848622.
Well, that's a bogus block then, because that's obviously not the root
cause. I see I was CCed when that block was set, I guess I missed it.
:/ Fixed it now…
"dpkg-query: Make -S handle unowned symlinks resolving to owned
pathnames" filed in February 2002 - 19 years and a half ago. I refer to that because it's linked as the root cause in the BTS of the relevant
issue with usrmerge we are discussing.
Even if the wishlist from that report got implemented, it would still
not fully solve all the problems, where among them «dpkg-query -S»
is probably the lesser one, which would not work in the other direction anyway (querying a path under /usr/ known to dpkg as being under /).
And then I'm not convinced this should even be implemented at all,
as it would introduce behavior differences between literal pathnames
and patterns, and making them slower (for the first case) or potentially extremely slower (for the second case), in addition to making the queries dependent on the on-disk layout (so unreliable from the packaging PoV,
as it would invent on the spot, pathnames not truly coming from any
package nor otherwise known to dpkg).
This for a misfeature in dpkg (supporting redirecting symlinks) that
allowed the current mess anyway. So I'm inclined to wontfix and close
that one.
Not looking forward to further interactions…
Guillem
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 58:36:53 |
Calls: | 6,652 |
Calls today: | 4 |
Files: | 12,200 |
Messages: | 5,331,145 |