On 11/14/2014 04:51 PM, Hugo Mills wrote:
Chris, Josef, anyone else who's interested,
On IRC, I've been seeing reports of two persistent unsolved
problems. Neither is showing up very often, but both have turned up
often enough to indicate that there's something specific going on
worthy of investigation.
One of them is definitely a btrfs problem. The other may be btrfs,
or something in the block layer, or just broken hardware; it's hard to
tell from where I sit.
Problem 1: ENOSPC on balance
This has been going on since about March this year. I can
reasonably certainly recall 8-10 cases, possibly a number more. When
running a balance, the operation fails with ENOSPC when there's plenty
of space remaining unallocated. This happens on full balance, filtered
balance, and device delete. Other than the ENOSPC on balance, the FS
seems to work OK. It seems to be more prevalent on filesystems
converted from ext*. The first few or more reports of this didn't make
it to bugzilla, but a few of them since then have gone in.
Problem 2: Unexplained zeroes
Failure to mount. Transid failure, "expected xyz, have 0". Chris
looked at an early one of these (for Ke, on IRC) back in September
(the 27th -- sadly, the public IRC logs aren't there for it, but I can
supply a copy of the private log). He rapidly came to the conclusion
that it was something bad going on with TRIM, replacing some blocks
with zeroes. Since then, I've seen a bunch of these coming past on
IRC. It seems to be a 3.17 thing. I can successfully predict the
presence of an SSD and -odiscard from the "have 0". I've successfully
persuaded several people to put this into bugzilla and capture
btrfs-images. btrfs recover doesn't generally seem to be helpful in
recovering data.
I think Josef had problem 1 in his sights, but I don't know if
additional images or reports are helpful at this point. For problem 2,
there's obviously something bad going on, but there's not much else to
go on -- and the inability to recover data isn't good.
For each of these, what more information should I be trying to
collect from any future reporters?
So for #2 I've been looking at that the last two weeks. I'm always
paranoid we're screwing up one of our data integrity sort of things,
either not waiting on IO to complete properly or something like that.
I've built a dm target to be as evil as possible and have been running
it trying to make bad things happen. I got slightly side tracked since
my stress test exposed a bug in the tree log stuff an csums which I just
fixed. Now that I've fixed that I'm going back to try and make the
"expected blah, have 0" type errors happen.
As for the ENOSPC I keep meaning to look into it and I keep getting
distracted with other more horrible things. Ideally I'd like to
reproduce it myself, so more info on that front would be good, like do
all reports use RAID/compression/some other odd set of features? Thanks
for taking care of this stuff Hugo, #2 is the worst one and I'd like to
be absolutely sure it's not our bug, once I'm happy we aren't I'll look
at the balance thing.
Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html