On Thu, 30 Dec 2021 at 13:58, Chris Murphy <lists@colorremedies.com> wrote:
On Thu, Dec 30, 2021 at 1:31 AM Zbigniew Jędrzejewski-Szmek
<zbyszek@in.waw.pl> wrote:
>
> On Thu, Dec 30, 2021 at 02:27:04AM -0500, Matthew Miller wrote:
> > On Wed, Dec 29, 2021 at 03:17:42PM +0000, Tom Hughes via devel wrote:
> > > At this point somebody will no doubt argue that /usr changes on a
> > > package update and that the RPM database is a static definition of
> > > the currently installed OS files, but evidence says otherwise:
> > >
> > > % ls -l /var/lib/rpm
> > >
> > > total 378M
> > >
> > > -rw-r--r--. 1 root root 378M Dec 28 16:08 rpmdb.sqlite
> > > -rw-r--r--. 1 root root  32K Dec 29 09:27 rpmdb.sqlite-shm
> > > -rw-r--r--. 1 root root    0 Dec 28 16:08 rpmdb.sqlite-wal
> > >
> > >
> > > While "Dec 28 16:08" is indeed the last time I updated that machine
> > > it seems one of the files has changed more recently - no idea what
> > > triggered that but clearly the files are not static between updates.
> >
> > That is a sqlite write-ahead log shared memory file used to coordinate
> > access between concurrent clients. Someone who knows more about the depths
> > of DNF and RPM than me will need to comment, but it looks like `dnf list`
> > touches it -- even though `rpm -qa` doesn't.
>
> $ sudo strace -efile dnf list
> ...
> openat(AT_FDCWD, "/var/lib/rpm/rpmdb.sqlite-wal", O_RDWR|O_CREAT|O_NOFOLLOW|O_CLOEXEC, 0644) = 4
> openat(AT_FDCWD, "/var/lib/rpm/rpmdb.sqlite-shm", O_RDWR|O_CREAT|O_NOFOLLOW|O_CLOEXEC, 0644) = 5
> ...
>
> What happens if /var/lib is read-only? Changing (fixing?) this would
> be a pre-requisite to this proposal, we don't want 'dnf list' to break.

Why should it be a prerequisite? In all Fedora editions and spins with
dnf, /usr and /var are read-write. In the case of rpm-ostree based
editions and spins, they don't include dnf. I agree dnf should
tolerate read-only rpmdb files, but I'm not following the logic
leading to it being a prerequisite (must tolerate rather than should
tolerate).

I think that at least it needs to be ok'd that they can and will work on it to fix. The dnf team may have other things on their queue that they need to focus on this release so having to redesign their plumbing to deal with moved files may not be possible. that leaves F36 shipped with a broken dnf and no way anyone can update or run anything.


--
Stephen J Smoogen.
Let us be kind to one another, for most of us are fighting a hard battle. -- Ian MacClaren