Skip to content
  • Junxiao Bi's avatar
    ocfs2: fix panic due to unrecovered local alloc · 532e1e54
    Junxiao Bi authored
    mount.ocfs2 ignore the inconsistent error that journal is clean but
    local alloc is unrecovered.  After mount, local alloc not empty, then
    reserver cluster didn't alloc a new local alloc window, reserveration
    map is empty(ocfs2_reservation_map.m_bitmap_len = 0), that triggered the
    following panic.
    
    This issue was reported at
    
      https://oss.oracle.com/pipermail/ocfs2-devel/2015-May/010854.html
    
    and was advised to fixed during mount.  But this is a very unusual
    inconsistent state, usually journal dirty flag should be cleared at the
    last stage of umount until every other things go right.  We may need do
    further debug to check that.  Any way to avoid possible futher
    corruption, mount should be abort and fsck should be run.
    
      (mount.ocfs2,1765,1):ocfs2_load_local_alloc:353 ERROR: Local alloc hasn't been recovered!
      found = 6518, set = 6518, taken = 8192, off = 15912372
      ocfs2: Mounting device (202,64) on (node 0, slot 3) with ordered data mode.
      o2dlm: Joining domain 89CEAC63CC4F4D03AC185B44E0EE0F3F ( 0 1 2 3 4 5 6 8 ) 8 nodes
      ocfs2: Mounting device (202,80) on (node 0, slot 3) with ordered data mode.
      o2hb: Region 89CEAC63CC4F4D03AC185B44E0EE0F3F (xvdf) is now a quorum device
      o2net: Accepted connection from node yvwsoa17p (num 7) at 172.22.77.88:7777
      o2dlm: Node 7 joins domain 64FE421C8C984E6D96ED12C55FEE2435 ( 0 1 2 3 4 5 6 7 8 ) 9 nodes
      o2dlm: Node 7 joins domain 89CEAC63CC4F4D03AC185B44E0EE0F3F ( 0 1 2 3 4 5 6 7 8 ) 9 nodes
      ------------[ cut here ]------------
      kernel BUG at fs/ocfs2/reservations.c:507!
      invalid opcode: 0000 [#1] SMP
      Modules linked in: ocfs2 rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs fscache lockd grace ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm ocfs2_nodemanager ocfs2_stackglue configfs sunrpc ipt_REJECT nf_reject_ipv4 nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr ipv6 ovmapi ppdev parport_pc parport xen_netfront fb_sys_fops sysimgblt sysfillrect syscopyarea acpi_cpufreq pcspkr i2c_piix4 i2c_core sg ext4 jbd2 mbcache2 sr_mod cdrom xen_blkfront pata_acpi ata_generic ata_piix floppy dm_mirror dm_region_hash dm_log dm_mod
      CPU: 0 PID: 4349 Comm: startWebLogic.s Not tainted 4.1.12-124.19.2.el6uek.x86_64 #2
      Hardware name: Xen HVM domU, BIOS 4.4.4OVM 09/06/2018
      task: ffff8803fb04e200 ti: ffff8800ea4d8000 task.ti: ffff8800ea4d8000
      RIP: 0010:[<ffffffffa05e96a8>]  [<ffffffffa05e96a8>] __ocfs2_resv_find_window+0x498/0x760 [ocfs2]
      Call Trace:
        ocfs2_resmap_resv_bits+0x10d/0x400 [ocfs2]
        ocfs2_claim_local_alloc_bits+0xd0/0x640 [ocfs2]
        __ocfs2_claim_clusters+0x178/0x360 [ocfs2]
        ocfs2_claim_clusters+0x1f/0x30 [ocfs2]
        ocfs2_convert_inline_data_to_extents+0x634/0xa60 [ocfs2]
        ocfs2_write_begin_nolock+0x1c6/0x1da0 [ocfs2]
        ocfs2_write_begin+0x13e/0x230 [ocfs2]
        generic_perform_write+0xbf/0x1c0
        __generic_file_write_iter+0x19c/0x1d0
        ocfs2_file_write_iter+0x589/0x1360 [ocfs2]
        __vfs_write+0xb8/0x110
        vfs_write+0xa9/0x1b0
        SyS_write+0x46/0xb0
        system_call_fastpath+0x18/0xd7
      Code: ff ff 8b 75 b8 39 75 b0 8b 45 c8 89 45 98 0f 84 e5 fe ff ff 45 8b 74 24 18 41 8b 54 24 1c e9 56 fc ff ff 85 c0 0f 85 48 ff ff ff <0f> 0b 48 8b 05 cf c3 de ff 48 ba 00 00 00 00 00 00 00 10 48 85
      RIP   __ocfs2_resv_find_window+0x498/0x760 [ocfs2]
       RSP <ffff8800ea4db668>
      ---[ end trace 566f07529f2edf3c ]---
      Kernel panic - not syncing: Fatal exception
      Kernel Offset: disabled
    
    Link: http://lkml.kernel.org/r/20181121020023.3034-2-junxiao.bi@oracle.com
    
    
    Signed-off-by: default avatarJunxiao Bi <junxiao.bi@oracle.com>
    Reviewed-by: default avatarYiwen Jiang <jiangyiwen@huawei.com>
    Acked-by: default avatarJoseph Qi <jiangqi903@gmail.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: Mark Fasheh <mfasheh@versity.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Changwei Ge <ge.changwei@h3c.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    532e1e54