Bug 217888 - jbd2: potential data lost in recovering journal raced with synchronizing fs bdev
Summary: jbd2: potential data lost in recovering journal raced with synchronizing fs bdev
Status: NEW
Alias: None
Product: File System
Classification: Unclassified
Component: ext4 (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: fs_ext4@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-08 08:12 UTC by Zhihao Cheng
Modified: 2023-09-08 09:30 UTC (History)
0 users

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments
diff (2.33 KB, patch)
2023-09-08 08:13 UTC, Zhihao Cheng
Details | Diff
diff_v2 (2.32 KB, patch)
2023-09-08 09:29 UTC, Zhihao Cheng
Details | Diff
disk (13.45 KB, application/x-gzip)
2023-09-08 09:30 UTC, Zhihao Cheng
Details

Description Zhihao Cheng 2023-09-08 08:12:58 UTC
1. Apply diff and compile kernel
2. dd if=disk_1 of=/dev/sda bs=1M
   dd if=disk_1 of=/dev/sda bs=1M seek=43
3. mount /dev/sda temp # will stuck
4. sync /dev/sda # Type this command in another terminal, finish it in 5s when you see "wait sync" from dmesg.
4. umount temp
5. fsck.ext4 -fn /dev/sda


Unattached inode 13
Connect to /lost+found? no

Pass 5: Checking group summary information

/dev/sda: ********** WARNING: Filesystem still has errors **********



===============
'touch file' is recorded in journal of sda, and the journal is not replayed yet.

journal in sda:

Journal starts at block 1, transaction 2
Found expected sequence 2, type 1 (descriptor block) at block 1
Dumping descriptor block, sequence 2, at block 1:
  FS block 266 logged at journal block 2 (flags 0x0)
  FS block 2 logged at journal block 3 (flags 0x2)
  FS block 276 logged at journal block 4 (flags 0x2)   # new inode
  FS block 273 logged at journal block 5 (flags 0x2)
  FS block 3479 logged at journal block 6 (flags 0x2)  # new dentry
  FS block 1 logged at journal block 7 (flags 0xa)
Found expected sequence 2, type 2 (commit block) at block 8
Comment 1 Zhihao Cheng 2023-09-08 08:13:28 UTC
Created attachment 305067 [details]
diff
Comment 2 Zhihao Cheng 2023-09-08 09:28:24 UTC
1. Apply diff_v2 and compile kernel
2. dd if=disk of=/dev/sda bs=1M
3. mount /dev/sda temp # will stuck
4. sync /dev/sda # Type this command in another terminal, finish it in 5s when you see "wait sync" from dmesg.
4. umount temp
5. fsck.ext4 -fa /dev/sda
/dev/sda: Unattached inode 13


/dev/sda: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
	(i.e., without -a or -p options)


===============
'touch file' is recorded in journal of sda, and the journal is not replayed yet.

journal in sda:

Journal starts at block 1, transaction 2
Found expected sequence 2, type 1 (descriptor block) at block 1
Dumping descriptor block, sequence 2, at block 1:
  FS block 84 logged at journal block 2 (flags 0x0)
  FS block 2 logged at journal block 3 (flags 0x2)
  FS block 89 logged at journal block 4 (flags 0x2)  # new inode
  FS block 86 logged at journal block 5 (flags 0x2)
  FS block 726 logged at journal block 6 (flags 0x2) # new dentry
  FS block 1 logged at journal block 7 (flags 0x2)
  FS block 83 logged at journal block 8 (flags 0xa)
Comment 3 Zhihao Cheng 2023-09-08 09:29:20 UTC
Created attachment 305068 [details]
diff_v2
Comment 4 Zhihao Cheng 2023-09-08 09:30:29 UTC
Created attachment 305069 [details]
disk

Note You need to log in before you can comment on or make changes to this bug.