> Am 17.05.2019 um 01:42 schrieb Chris Murphy <li...@colorremedies.com>: > > Btrfs balance is supposed to be COW. So a block group is not > dereferenced until it is copied successfully and metadata is updated. > So it sounds like the fstrim happened before the metadata was updated. > But I don't see how that's possible in normal operation even without a > sync, let alone with the sync.
Balance is indeed not to blame here. See below. > The most reliable way to test it, ideally keep everything the same, do > a new mkfs.btrfs, and try to reproduce the problem. And then do a > bisect. That for sure will find it, whether it's btrfs or something > else that's changed in the kernel. But it's also a bit tedious. > > I'm not sure how to test this with any other filesystem on top of your > existing storage stack instead of btrfs, to see if it's btrfs or > something else. And you'll still have to do a lot of iteration. So it > doesn't make things that much easier than doing a kernel bisect. > Neither ext4 nor XFS have block group move like Btrfs does. LVM does > however, with pvmove. But that makes the testing more complicated, > introduces more factors. So...I still vote for bisect. > > But even if you can't bisect, if you can reproduce, that might help > someone else who can do the bisect. I tried to reproduce this issue: I recreated the btrfs file system, set up a minimal system and issued fstrim again. It printed the following error message: fstrim: /: FITRIM ioctl failed: Input/output error Now it gets iteresting: After this, the btrfs file system was fine. However, two other LVM logical volumes that are partitioned with ext4 were destroyed. I cannot reproduce this issue with an older Linux 4.19 live CD. So I assume that it is not an issue with the SSD itself. I’ll start bisecting now. It could take a while since every “successful” (i.e., destructive) test requires me to recreate the system. > Your stack looks like this? > > Btrfs > LUKS/dmcrypt > LVM > Samsung SSD To be precise, there’s an MBR partition in the game as well: Btrfs LUKS/dmcrypt LVM MBR partition Samsung SSD Cheers, Michael