All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bug 194739] New: fallocate --collapse-range causes temporal data corruption on fragmented file
@ 2017-03-01  0:00 bugzilla-daemon
  2017-03-15 17:48 ` [Bug 194739] " bugzilla-daemon
  0 siblings, 1 reply; 2+ messages in thread
From: bugzilla-daemon @ 2017-03-01  0:00 UTC (permalink / raw)
  To: linux-ext4

https://bugzilla.kernel.org/show_bug.cgi?id=194739

            Bug ID: 194739
           Summary: fallocate --collapse-range causes temporal data
                    corruption on fragmented file
           Product: File System
           Version: 2.5
    Kernel Version: 4.10.1
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: ext4
          Assignee: fs_ext4@kernel-bugs.osdl.org
          Reporter: iive@yahoo.com
        Regression: No

I use `fallocate -c` to cut the start of the file without having to copy the
whole file again.

However recently, after collapsing the file it seems to repeat a portion of the
data, that should have been moved. That is, the new start of the file is found
somewhere around its old location.

Restarting the computer (or just hibernate) seems to fix the file.

Doing:
`echo 3 > /proc/sys/vm/drop_caches`

also seems to fix the issue. Using just `echo 1` fixes some of the data, but
the file still might be broken.


I've noticed this problem on 4.9 kernel. I'm not sure if it is regression,
because the problem might be triggered by high fragmentation. This partition
got quite full and the files are quite big, thus they are always very
fragmented.

Just want to make it clear.
Data on disk is not damaged.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug 194739] fallocate --collapse-range causes temporal data corruption on fragmented file
  2017-03-01  0:00 [Bug 194739] New: fallocate --collapse-range causes temporal data corruption on fragmented file bugzilla-daemon
@ 2017-03-15 17:48 ` bugzilla-daemon
  0 siblings, 0 replies; 2+ messages in thread
From: bugzilla-daemon @ 2017-03-15 17:48 UTC (permalink / raw)
  To: linux-ext4

https://bugzilla.kernel.org/show_bug.cgi?id=194739

Ivan Kalvachev (iive@yahoo.com) changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |CODE_FIX

--- Comment #1 from Ivan Kalvachev (iive@yahoo.com) ---
With kernel-4.10.2 I cannot reproduce the bug anymore.

The following commit looks like it might be the one fixing the issue:
---
commit 011fe6ade610c2ca5a609c83c509f1fc8e4c8b7f
Author: Roman Pen <roman.penyaev@profitbricks.com>
Date:   Sun Jan 8 21:00:35 2017 -0500

    ext4: do not polute the extents cache while shifting extents

    commit 03e916fa8b5577d85471452a3d0c5738aa658dae upstream.

    Inside ext4_ext_shift_extents() function ext4_find_extent() is called
    without EXT4_EX_NOCACHE flag, which should prevent cache population.

    This leads to oudated offsets in the extents tree and wrong blocks
    afterwards.

    Patch fixes the problem providing EXT4_EX_NOCACHE flag for each
    ext4_find_extents() call inside ext4_ext_shift_extents function.

    Fixes: 331573febb6a2
---

-- 
You are receiving this mail because:
You are watching the assignee of the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-03-15 17:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-01  0:00 [Bug 194739] New: fallocate --collapse-range causes temporal data corruption on fragmented file bugzilla-daemon
2017-03-15 17:48 ` [Bug 194739] " bugzilla-daemon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.