[Bug 16165] New: Wrong data returned on read after write if file size was changed with ftruncate before

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

           Summary: Wrong data returned on read after write if file size
                    was changed with ftruncate before
           Product: File System
           Version: 2.5
    Kernel Version: at least up to 2.6.34
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: ext4
        AssignedTo: fs_ext4@xxxxxxxxxxxxxxxxxxxx
        ReportedBy: Alexander.Eichner@xxxxxxx
        Regression: No


Created an attachment (id=26701)
 --> (https://bugzilla.kernel.org/attachment.cgi?id=26701)
Testcase showing the corruption

Hi,

we use the direct async I/O API for file I/O in VirtualBox since 3.2 and got
some reports about corrupted guest filesystems. It turned out that only users
are affected which disk images are stored on a ext4 filesystem. I could create
a testcase which reproduces the error. Further investigation showed that the
data corruption happens if ftruncate is used, data is written to the so far
unallocated offset and immediately read back. The buffer holding the read data
contains only \0 afterwards. The data is there if the file is closed and
another
program is used to view the file content (less for example). Everything works
if ftruncate is not used.
The same testcase with ftruncate works on ext3 here. A simple testcase is
attached.

Compile with: gcc -D_GNU_SOURCE -o aio_corrupt aio_corrupt.c -laio
Usage: aio_corrupt <path/to/the/file>

Expected output: Success!
Output on ext3: Success!
Output on ext4: Corrupted buffer!

Kind regards,
Alexander Eichner

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux