Szalma László posted on Thu, 12 May 2016 20:28:24 +0200 as excerpted:

> The files that rarely become unreadable (I/O error but no error in dmesg
> or anywhere) are mysql MyIsam database files, and they are always small.
> Like 16kbyte for example, or smaller. Sometimes dropping the fs cache
> fixes the problem, sometimes not. Umount / mount always fixes the
> problem. Scrub says the filesystem is OK (when the file is unreadable).

Is it possible the files are always under 4 KiB?

While there's a few variables as to max size, with 4 KiB being the 
practical max, btrfs will inline really small files into their metadata 
node instead of writing them out as 4 KiB data block extents.  Since 
that's obviously a different code-path, if it's only 4 KiB and smaller 
files, it's possible there's a race in that code-path that when lost, 
results in the file "disappearing" without a dmesg trace, only to 
reappear after reboot.

Actually, now that I think about it, if the files are all OVER say 2 KiB 
but still quite small, say under 16 KiB, and if they had just recently 
grown, it's possible that the race is in the transition from the inline 
metadata state to the multiples of 4 KiB block data extent state.

And if all the files had just shrunk, say from compaction (if done in-
place, not with a copy and rename), perhaps it's the reverse, the 
transition from written data blocks to inline metadata state.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

--
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

Reply via email to