[Bug 216898] New: jbd2: Data missing when reusing bh which is ready to be checkpointed

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

 



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

            Bug ID: 216898
           Summary: jbd2: Data missing when reusing bh which is ready to
                    be checkpointed
           Product: File System
           Version: 2.5
    Kernel Version: 6.2.0-rc1
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: ext4
          Assignee: fs_ext4@xxxxxxxxxxxxxxxxxxxx
          Reporter: chengzhihao1@xxxxxxxxxx
        Regression: No

CONFIG_EXT4_FS=y
CONFIG_JBD2=y

-smp 4

1. Apply diff and compile kernel
2. ./test.sh
[   95.923541] assign g_bh
[   95.961504] jbd2_journal_commit_transaction ---
[   95.962533] insert ffff88817a018680 into trans ffff888103167600
[   95.963762] mark buffer dirty
[   95.964430] jbd2_journal_commit_transaction ====
[   95.992262] commit ffff888103167600 chmod(1081)
[   95.993358] Do access to bh
[   96.965179] do_get_write_access: clear bh dirty
[   96.966057] do_get_write_access: wait checkpoint remove
[   98.005262] checkpoint: bh dirty bit should be cleared
[   98.006487] jbd2_log_do_checkpoint: remove from ck list
[   98.007666] commit ffff888103167600 done
[   98.008624] commit ffff888103167600 done
[   98.039452] Kernel panic - not syncing: DONE
[   98.040496] CPU: 3 PID: 1081 Comm: chmod Not tainted
6.2.0-rc1-00099-g841111e461ea-dirty #1075
[   98.042379] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
?-20190727_073836-buildvm-ppc64le-16.ppc.fedoraproject.org-3.fc4
[   98.045305] Call Trace:
[   98.045886]  <TASK>
[   98.046368]  dump_stack_lvl+0x73/0x9f
[   98.047114]  dump_stack+0x13/0x1b
[   98.047514]  panic+0x177/0x3e9
[   98.047901]  jbd2_log_do_checkpoint.cold+0xa6/0x580
[   98.048491]  ? ext4_setattr+0x169/0x1400
[   98.048985]  __jbd2_log_wait_for_space+0x18b/0x350
[   98.049554]  add_transaction_credits+0x3fc/0x4d0
[   98.050092]  ? _raw_spin_unlock_irqrestore+0x4b/0x90
[   98.050706]  ? add_timer+0x1d2/0x380
[   98.051152]  start_this_handle+0x156/0x900
[   98.051635]  ? kmem_cache_alloc+0x4d7/0xac0
[   98.052140]  jbd2__journal_start+0x12c/0x300
[   98.052644]  __ext4_journal_start_sb+0x2a6/0x300
[   98.053191]  ext4_dirty_inode+0x3d/0xa0
[   98.053648]  __mark_inode_dirty+0x8f/0x6b0
[   98.054138]  ext4_setattr+0x169/0x1400
[   98.054590]  ? path_lookupat.isra.0+0xca/0x200
[   98.055138]  notify_change+0x672/0x9c0
[   98.055607]  ? __call_rcu_common.constprop.0+0x17f/0xa20
[   98.056212]  ? chmod_common+0x197/0x250
[   98.056648]  chmod_common+0x197/0x250
[   98.057075]  ? delete_object_full+0x2b/0x40
[   98.057578]  ? kmemleak_free+0x43/0xa0
[   98.058038]  do_fchmodat+0x6e/0xf0
[   98.058453]  __x64_sys_fchmodat+0x1e/0x30
[   98.058935]  do_syscall_64+0x35/0x80
[   98.059369]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
[   98.059973] RIP: 0033:0x7f344ecffdb9
[   98.060422] Code: ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 f7 c1
ff fe ff ff 75 38 80 e5 01 75 4b 48 63 ff 89 d2 b8 0c 01 00 0
[   98.062533] RSP: 002b:00007ffd394ba888 EFLAGS: 00000246 ORIG_RAX:
000000000000010c
[   98.063422] RAX: ffffffffffffffda RBX: 0000000000000001 RCX:
00007f344ecffdb9
[   98.064275] RDX: 00000000000001ed RSI: 000055a2209ed0f0 RDI:
ffffffffffffff9c
[   98.065120] RBP: 000055a2209ed060 R08: 0000000000000000 R09:
0000000000000000
[   98.065949] R10: 0000000000000000 R11: 0000000000000246 R12:
000055a21f60a734
[   98.066765] R13: 000055a2209ed0f0 R14: 000055a2209ee320 R15:
0000000000008000
[   98.067592]  </TASK>
[   98.067942] Kernel Offset: disabled
[   98.068364] ---[ end Kernel panic - not syncing: DONE ]---

3. reboot
4. fsck.ext4 -fn /dev/sda
e2fsck 1.44.4 (18-Aug-2018)
Warning: skipping journal recovery because doing a read-only filesystem check.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Entry 'a' in / (2) has deleted/unused inode 12.  Clear? no

Entry 'a' in / (2) has an incorrect filetype (was 1, should be 0).
Fix? no

Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Inode bitmap differences:  -12
Fix? no

Free inodes count wrong (524277, counted=524276).
Fix? no


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

/dev/sda: 11/524288 files (0.0% non-contiguous), 58511/2097152 blocks

-- 
You may reply to this email to add a comment.

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



[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