Announcement

Collapse
No announcement yet.

Ext 4 bug: potential data loss

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ext 4 bug: potential data loss

    Hello, Ive just read:
    https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg886512.html

    Code:
    Currently it is possible to lose whole file system block worth of data
    
    when we hit the specific interaction with unwritten and delayed extents
    
    in status extent tree.
    
    The problem is that when we ins ert delayed extent into extent status
    
    tree the only way to get rid of it is when we write out delayed buffer.
    
    However there is a limitation in the extent status tree implementation
    
    so that when inserting unwritten extent should there be even a single
    
    delayed block the whole unwritten extent would be marked as delayed.
    
    At this point, there is no way to get rid of the delayed extents,
    
    because there are no delayed buffers to write out. So when a we write
    
    into said unwritten extent we will convert it to written, but it still
    
    remains delayed.
    
    When we try to write into that block later ext4_da_map_blocks() will set
    
    the buffer new and delayed and map it to invalid block which causes
    
    the rest of the block to be zeroed loosing already written data.
    
    For now we can fix this by simply not allowing to se t delayed status on
    
    written extent in the extent status tree. Also add WARN_ON() to make
    
    sure that we notice if this happens in the future.
    Can we expect any update tu CL Kernel in the near future? (We don see an update to kernel since months)

    Thank you

  • #2
    We will follow RHEL lead on that, as so far we had no customers complains about this issue, and we don know how prevalent the issue is.
    We might do it as a kernelcare patch for those who use it.

    Comment

    Working...
    X