Re: regression: data corruption with ext4 on LUKS on nvme with torvalds master
From: Changheun Lee <hidden>
Date: 2021-05-14 10:44:40
Also in:
dm-devel, linux-block, linux-nvme, lkml
On 5/13/21 7:15 AM, Theodore Ts'o wrote:quoted
On Thu, May 13, 2021 at 06:42:22PM +0900, Changheun Lee wrote:quoted
Problem might be casued by exhausting of memory. And memory exhausting would be caused by setting of small bio_max_size. Actually it was not reproduced in my VM environment at first. But, I reproduced same problem when bio_max_size is set with 8KB forced. Too many bio allocation would be occurred by setting of 8KB bio_max_size.Hmm... I'm not sure how to align your diagnosis with the symptoms in the bug report. If we were limited by memory, that should slow down the I/O, but we should still be making forward progress, no? And a forced reboot should not result in data corruption, unless maybe thereIf you use data=writeback, data writes and journal writes are not synchronized. So, it may be possible that a journal write made it through, a data write didn't - the end result would be a file containing random contents that was on the disk. Changheun - do you use data=writeback? Did the corruption happen only in newly created files? Or did it corrupt existing files?
Actually I didn't reproduced data corruption. I only reproduced hang during making ext4 filesystem. Alex, could you check it?
quoted
was a missing check for a failed memory allocation, causing data to be written to the wrong location, a missing error check leading to the block or file system layer not noticing that a write had failed (although again, memory exhaustion should not lead to failed writes; it might slow us down, sure, but if writes are being failed, something is Badly Going Wrong --- things like writes to the swap device or writes by the page cleaner must succeed, or else Things Would Go Bad In A Hurry).Mikulas