I upgraded to F42 last night on a ThinkPad. Everything seemed to go fine, but after the system booted into F42 after upgrade, I’m unable to use dnf as I get the following error:
SQL statement execution failed: "PRAGMA locking_mode = NORMAL; PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON;": (10) - disk I/O error
This appears to be caused by:
[ 1434.163623] BTRFS warning (device dm-0): csum failed root 258 ino 9939202 off 82141184 csum 0x84334bfd expected csum 0x6e4e098a mirror 1
[ 1434.163636] BTRFS error (device dm-0): bdev /dev/mapper/luks-2e54214c-e365-40ec-9ab4-846f1ade02a8 errs: wr 0, rd 0, flush 0, corrupt 37, gen 0
[ 1434.163903] BTRFS warning (device dm-0): csum failed root 258 ino 9939202 off 82141184 csum 0x84334bfd expected csum 0x6e4e098a mirror 1
[ 1434.163914] BTRFS error (device dm-0): bdev /dev/mapper/luks-2e54214c-e365-40ec-9ab4-846f1ade02a8 errs: wr 0, rd 0, flush 0, corrupt 38, gen 0
[ 1434.164132] BTRFS warning (device dm-0): csum failed root 258 ino 9939202 off 82141184 csum 0x84334bfd expected csum 0x6e4e098a mirror 1
[ 1434.164142] BTRFS error (device dm-0): bdev /dev/mapper/luks-2e54214c-e365-40ec-9ab4-846f1ade02a8 errs: wr 0, rd 0, flush 0, corrupt 39, gen 0
The file in question appears to be (inode 9939202) :
/usr/lib/sysimage/libdnf5/transaction_history.sqlite-wal
rpm appears to be fine, I’ve been able to remove packages etc., it’s just dnf. I checked the error logs and smart logs for the NVMEe storage device and there aren’t any. This appears to solely be a problem with btrfs reporting a checksum error for this file. I’m at a loss to why this would have occurred. Is it a hardware issue, bad memory etc. that resulted in corrupt file, a bug in btrfs, I dunno.
I did fully backup my home directory before the upgrade, so I could burn the whole thing down and re-install, but maybe there is a way to fix this? I’m also considering booting to a usb live image and running memory checker etc.
Any suggestions?
Thanks!
Note: I’ll be slow to respond to any follow-up questions.
Update (1): I ran the opensource memtest booted from USB, no memory errors found for whatever that’s worth.
Update(2): Work around for me was to manually remove and re-install dnf5 using rpm. This removed and replaced the corrupted file.