lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <AM0PR08MB3857738B22DB09CAEA25E431FAD19@AM0PR08MB3857.eurprd08.prod.outlook.com> Date: Wed, 1 Feb 2023 10:37:47 +0000 From: Etienne Schmidt OSS <Etienne.Schmidt-oss@...dmueller.com> To: "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org> Subject: Bug: Buffer I/O error with an ext4 filesystem inside a file Hello everyone! I have tried to allocate disk space for a service. To do this I created a file with fixed disk usage and created an ext4 file system in it. When I mount this file the mount point should be reserved space but something went wrong. With full memory I get a buffer I/O error. Observation ========== I created an ext4 filesystem inside a file (ext4 partition below) and mounted it (e.g. in /var/persistent/reserved). Then I fill up the underlying file system. There is enough space inside the file but when I write a file to it the journal gives a "buffer I/O error". Steps to Reproduce ================ The following steps reproduce these bug. I execute them as root user. Preparation: 1. Create a file with fix disk usage: `fallocate -l 32M /var/reserved.ext4` 2. Create a ext4 filesystem inside it: `mkfs.ext4 /var/reserved.ext4` 3. Create the mountpoint: `mkdir /var/reserved/` 4. Mount the file: `mount /var/reserved.ext4 /var/reserved/` 5. (Optional) Check the filesystem with fsck. Now the reserved storage works fine! The Bug: 1. Fill up the underlying filesystem: `fallocate -l 100G /var/very_big_file` 2. Write into the reserved storage: `echo "Test" > /var/reserved/test_file_1` or anything else. 3. The file is written but the journal shows the following error: ``` May 03 08:31:42 ucm kernel: loop: Write error at byte offset 8913920, length 1024. May 03 08:31:42 ucm kernel: blk_update_request: I/O error, dev loop0, sector 17410 op 0x1:(WRITE) flags 0x0 phys_seg 1 prio class 0 May 03 08:31:42 ucm kernel: EXT4-fs warning (device loop0): ext4_end_bio:344: I/O error 10 writing to inode 12 starting block 8706) May 03 08:31:42 ucm kernel: Buffer I/O error on device loop0, logical block 8705 May 03 08:31:42 ucm kernel: JBD2: Detected IO errors while flushing file data on loop0-8 ``` Quick fix ======= Allocate a larger space to the file AFTER creating the ext4 file system. E.g after step 2. within the reserved space preparation: `fallocate -l 33M /var/reserved.ext4` Is this a bug or is my use wrong? Best regards Etienne Schmidt
Powered by blists - more mailing lists