On Thu, Dec 30, 2021 at 1:31 AM Zbigniew Jędrzejewski-Szmek <zbyszek@xxxxxxxxx> 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). -- Chris Murphy _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure