On 2019-09-25T14:32:31, Pallissard, Matthew wrote: > On 2019-09-25T15:05:44, Chris Murphy wrote: > > On Wed, Sep 25, 2019 at 1:34 PM Pallissard, Matthew <m...@pallissard.net> > > wrote: > > > On 2019-09-25T13:08:34, Chris Murphy wrote: > > > > On Wed, Sep 25, 2019 at 8:50 AM Pallissard, Matthew > > > > <m...@pallissard.net> wrote: > > > > > > > > > > Version: > > > > > Kernel: 5.2.2-arch1-1-ARCH #1 SMP PREEMPT Sun Jul 21 19:18:34 UTC > > > > > 2019 x86_64 GNU/Linux > > > > > > > > You need to upgrade to arch kernel 5.2.14 or newer (they backported the > > > > fix first appearing in stable 5.2.15). Or you need to downgrade to 5.1 > > > > series. > > > > https://lore.kernel.org/linux-btrfs/20190911145542.1125-1-fdman...@kernel.org/T/#u > > > > > > > > That's a nasty bug. I don't offhand see evidence that you've hit this > > > > bug. But I'm not certain. So first thing should be to use a different > > > > kernel. > > > > > > Interesting, I'll go ahead with a kernel upgrade as that easy enough. > > > However, that looks like it's related to a stacktrace regarding a hung > > > process. Which is not the original problem I had. > > > Based on the output in my previous email, I've been working under the > > > assumption that there is a problem on-disk. Is that not correct? > > > > That bug does cause filesystem corruption that is not repairable. > > Whether you have that problem or a different problem, I'm not sure. > > But it's best to avoid combining problems. > > > > The file system mounts rw now? Or still only mounts ro? > > It mounts RW, but I have yet to attempt an actual write. > > > > I think most of the errors reported by btrfs check, if they still exist > > after doing a scrub, should be repaired by 'btrfs check --repair' but I > > don't advise that until later. I'm not a developer, maybe Qu can offer some > > advise on those errors. > > > > > > Next, anytime there is a crash or powerfailur with Btrfs raid56, you > > > > need to do a complete scrub of the volume. Obviously will take time but > > > > that's what needs to be done first. > > > > > > I'm using raid 10, not 5 or 6. > > > > Same advice, but it's not as important to raid10 because it doesn't have > > the write hole problem. > > > > > > OK actually, before the scrub you need to confirm that each drive's SCT > > > > ERC time is *less* than the kernel's SCSI command timer. e.g. > > > > > > I gather that I should probably do this before any scrub, be it raid 5, > > > 6, or 10. But, Is a scrub the operation I should attempt on this raid 10 > > > array to repair the specific errors mentioned in my previous email? > > > > Definitely deal with the timing issue first. If by chance there are bad > > sectors on any of the drives, they must be properly reported by the drive > > with a discrete read error in order for Btrfs to do a proper fixup. If the > > times are mismatched, then Linux can get tired waiting, and do a link reset > > on the drive before the read error happens. And now the whole command queue > > is lost and the problem isn't fixed. > > Good to know, that seems like a critical piece of information. A few > searches turned up this page, https://wiki.debian.org/Btrfs#FAQ. > > Should this be noted on the 'gotchas' or 'getting started page as well? I'd > be happy to make edits should the powers that be allow it. > > > > There are myriad errors and the advice I'm giving to scrub is a safe first > > step to make sure the storage stack is sane - or at least we know where the > > simpler problems are. And then move to the less simple ones that have > > higher risk. It also changed the volume the least. Everything else, like > > balance and chunk recover and btrfs check --repair - all make substantial > > changes to the file system and have higher risk of making things worse. > > This sounds sensible. > > > > In theory if the storage stack does exactly what Btrfs says, then at worst > > you should lose some data, but the file system itself should be consistent. > > And that includes power failures. The fact there's problems reported > > suggests a bug somewhere - it could be Btrfs, it could be device mapper, it > > could be controller or drive firmware. > > I'll go ahead with a kernel upgrade/make sure the timing issues are squared > away. Then I'll kick off a scrub. > > I'll report back when the scrub is complete or something interesting happens. > Whichever comes first.
As a followup; 1. I took care of the timing issues 2. ran a scrub. 3. I ran a balance, it kept failing with about 20% left - stacktraces in dmesg showed spinlock stuff 3. got I/O errors on one file during my final backup, ( - post-backup hashsums of everything else checked out - the errors during the copy were csum mismatches should anyone care 4. ran a bunch of potentially disruptive btrfs check commands in alphabetical order because "why not at this point?" - they had zero affect as far as I can tell, all the same files were readable, the btrfs check errors looked identical (admittedly I didn't put them side by side) 5. re-provisioned the array, restored from backups. As I thought about it, it may have not been an issue with the original power outage. I only ran a check after the power outage. My array could have had an issue due to a previous bug. I was on a 5.2x kernel for several weeks under high load. Anyway, there are enough unknowns to make a root cause analysis not worth my time. Marking this as unresolved folks in the future who may be looking for answers. Matt Pallissard
signature.asc
Description: PGP signature