xfs
[Top] [All Lists]

Re: Oops in vn_revalidate with XFS 2.4.4

To: Keith Owens <kaos@xxxxxxxxxx>
Subject: Re: Oops in vn_revalidate with XFS 2.4.4
From: Steve Lord <lord@xxxxxxx>
Date: Sun, 27 May 2001 20:04:03 -0500
Cc: linux-xfs@xxxxxxxxxxx
Comments: In-reply-to Keith Owens <kaos@ocs.com.au> message dated "Sun, 27 May 2001 18:12:43 +1000."
References: <6707.990951163@ocs3.ocs-net>
Sender: owner-linux-xfs@xxxxxxxxxxx
Keith, you got bitten by the bad revision of the code I checked in on
Friday, an icache_prune running in parallel with an xfs_iget would
have a chance of crashing the system. A fix went in later on Sunday.

Steve

> XFS 2.4.4 CVS as of Sun May 27 02:00 UTC.  SMP, compiled with gcc
> version 2.96 20000731 (Red Hat Linux 7.1 2.96-81).  Redhat claim that
> this version of gcc is OK to compile the kernel, there is no kgcc in
> Redhat 7.1.  Running rsync from a second machine to this machine.
> 
> Reboot came up fine (and fast :).  Rerunning rsync worked the second
> time but a later rsync failed at the same place.  Just before the
> failure it said
> 
>   xfs_iget_core: ambiguous vns: vp/0xc2d9e508, invp/0xc73dbd08
> 
> [0]kdb> rd
> eax = 0x00000000 ebx = 0xc73dbd08 ecx = 0xc7a6c800 edx = 0xc2d9d9c4
> esi = 0xc73dbd08 edi = 0x00000084 esp = 0xc27f3d24 eip = 0xc88a5b0e
> ebp = 0xc78db334 xss = 0x00000018 xcs = 0x00000010 eflags = 0x00010286
> xds = 0xc2d90018 xes = 0x00000018 origeax = 0xffffffff &regs = 0xc27f3cf0
> [0]kdb> bt
>     EBP       EIP         Function(args)
> 0xc78db334 0xc88a5b0e [xfs]vn_revalidate+0x1e (0xc73dbd08, 0x84, 0x0, 0xc12f7
> 0c0, 0xa007f5)
>                                xfs .text 0xc8849060 0xc88a5af0 0xc88a5c00
>            0xc887d4f1 [xfs]xfs_iget_core+0x611 (0xc73dbd08, 0xc7a6c800, 0x0, 
> 0xa007f5, 0x0)
>                                xfs .text 0xc8849060 0xc887cee0 0xc887d510
>            0xc887d615 [xfs]xfs_iget+0x105 (0xc7a6c800, 0x0, 0xa007f5, 0x0, 0x
> 0)
>                                xfs .text 0xc8849060 0xc887d510 0xc887d650
>            0xc88930f7 [xfs]xfs_dir_lookup_int+0x127 (0x0, 0xc2d9dbb0, 0x5, 0x
> c3faed20, 0xc27f3eec)
>                                xfs .text 0xc8849060 0xc8892fd0 0xc8893290
>            0xc8897a17 [xfs]xfs_lookup+0x97 (0xc2d9dbb0, 0xc3faed20, 0xc27f3ed
> 8, 0xc27f3eec, 0x0)
>                                xfs .text 0xc8849060 0xc8897980 0xc8897a90
>            0xc88a05f8 [xfs]linvfs_lookup+0x68 (0xc2d9e5e0, 0xc3faecc0)
>                                xfs .text 0xc8849060 0xc88a0590 0xc88a0650
>            0xc013fc23 real_lookup+0x73 (0xc3657960, 0xc27f3f54, 0x0, 0x1, 0x8
> )
>                                kernel .text 0xc0100000 0xc013fbb0 0xc013fcc0
>            0xc01404f4 path_walk+0x6b4 (0xc6749000, 0xc27f3f9c)
>                                kernel .text 0xc0100000 0xc013fe40 0xc0140790
>            0xc0140c7a __user_walk+0x3a (0xbfff9878, 0x8, 0xc27f3f9c, 0xc36579
> 60, 0xc13f0860)
>                                kernel .text 0xc0100000 0xc0140c40 0xc0140ca0
>            0xc013d623 sys_lstat64+0x13 (0xbfff9878, 0xbfffa888, 0x4014e9e4, 0
> xbfffa888, 0xbfff9878)
>                                kernel .text 0xc0100000 0xc013d610 0xc013d680
>            0xc0106e2b system_call+0x33
>                                kernel .text 0xc0100000 0xc0106df8 0xc0106e30
> [0]kdb> mds 0xc73dbd08
> 0xc73dbd08 00010000  ....  __u32 v_flag
> 0xc73dbd0c 00000002  ....  enum vtype v_type
> 0xc73dbd10 c7f42860  `(tG  struct vfs *v_vfsp
> 0xc73dbd14 00026052  R`..  vnumber_t v_number
> 0xc73dbd18 00000000  ....
> 0xc73dbd1c 00000000  ....  bhv_head_t v_bh
> 0xc73dbd20 00000001  ....  spinlock_t v_lock
> 0xc73dbd24 c73dbc00  .<=G  struct inode *v_inode
> 
> inode 0xc73dbc00
> struct inode at  0xc73dbc00
>  i_ino = 10487797 i_count = 1 i_dev = 0x814 i_size 0
>  i_mode = 0x0  i_nlink = 1  i_rdev = 0x0
>  i_hash.nxt = 0xc037a5e0 i_hash.prv = 0xc12f70c0
>  i_list.nxt = 0xc2d9e5e8 i_list.prv = 0xc02c9288
>  i_dentry.nxt = 0xc73dbc10 i_dentry.prv = 0xc73dbc10
>  i_dirty_buffers.nxt = 0xc73dbc18 i_dirty_buffers.prv = 0xc73dbc18
>  i_sb = 0xc78de800 i_op = 0xc03231e0 i_data = 0xc73dbca4 nrpages = 0
>  i_mapping = 0xc73dbca4
>  i_flags 0x0 i_state 0x48 [I_LOCK I_NEW]  fs specific info @ 0xc73dbd08
> 
> [0]kdb> id vn_revalidate
> 0xc88a5af0 vn_revalidate push   %edi
> 0xc88a5af1 vn_revalidate+0x1 push   %esi
> 0xc88a5af2 vn_revalidate+0x2 push   %ebx
> 0xc88a5af3 vn_revalidate+0x3 sub    $0x70,%esp
> 0xc88a5af6 vn_revalidate+0x6 mov    0x80(%esp,1),%ebx         struct vnode *v
> p
> 0xc88a5afd vn_revalidate+0xd movl   $0x14003fff,(%esp,1)
> 0xc88a5b04 vn_revalidate+0x14 mov    0x84(%esp,1),%edi
> 0xc88a5b0b vn_revalidate+0x1b mov    0x14(%ebx),%eax          vp->v_bh == NUL
> L
> 0xc88a5b0e vn_revalidate+0x1e mov    0x8(%eax),%edx           vp->v_bh->bd_op
> s, oops
> 0xc88a5b11 vn_revalidate+0x21 push   $0x0
> 0xc88a5b13 vn_revalidate+0x23 mov    %edi,%eax
> 0xc88a5b15 vn_revalidate+0x25 and    $0x80,%eax
> 0xc88a5b1a vn_revalidate+0x2a push   %eax
> 0xc88a5b1b vn_revalidate+0x2b lea    0x8(%esp,1),%eax
> 0xc88a5b1f vn_revalidate+0x2f push   %eax
> 0xc88a5b20 vn_revalidate+0x30 mov    0x14(%ebx),%esi
> 
> Why is vp->v_bh NULL?
> 
> [0]kdb> mds c7f42860 (struct vfs)
> 0xc7f42860 00001020   ...
> 0xc7f42864 00000814  ....
> 0xc7f42868 00000001  ....
> 0xc7f4286c c7f4286c  l(tG
> 0xc7f42870 c7f4286c  l(tG
> 0xc7f42874 00000001  ....
> 0xc7f42878 00001000  ....
> 0xc7f4287c 00000000  ....
> 0xc7f42880 8b51c640  @FQ.
> 0xc7f42884 266bb554  T5k&
> 0xc7f42888 c7a6ca18  .J&G
> 0xc7f4288c c7a6c800  .H&G
> 0xc7f42890 c78de800  .h.G
> 0xc7f42894 00000000  ....
> 0xc7f42898 00000000  ....
> 0xc7f4289c 00000000  ....
> 0xc7f428a0 00000002  ....
> 0xc7f428a4 00048000  ....
> 0xc7f428a8 6f616b30  0kao
> 0xc7f428ac 00000073  s...
> 0xc7f428b0 40000c83  ...@
> 0xc7f428b4 736f616b  kaos
> 0xc7f428b8 736e692d  -ins
> 0xc7f428bc 6c6c6174  tall
> 0xc7f428c0 8a000000  ....
> 0xc7f428c4 00000000  ....
> 0xc7f428c8 00000001  ....
> 0xc7f428cc 00000001  ....
> 0xc7f428d0 00000000  ....
> 0xc7f428d4 00000000  ....
> 0xc7f428d8 00000000  ....
> 0xc7f428dc 00000000  ....
> 0xc7f428e0 c7e93d20   =iG
> 0xc7f428e4 c7e93ea0   >iG
> 0xc7f428e8 00000000  ....
> 0xc7f428ec c78de000  .`.G
> 0xc7f428f0 00000008  ....
> 0xc7f428f4 ffffffff  
> 0xc7f428f8 00000001  ....
> 0xc7f428fc 00000002  ....

<Prev in Thread] Current Thread [Next in Thread>