CC aufs-users. On Mon, Jul 16, 2018 at 2:29 PM Prasad Koya <prasad.koya@xxxxxxxxx> wrote: > > Hi > > Has anyone run into this crash with aufs 3? We hit this in production. > > Thank you. > > <1>[45257161.254682] BUG: unable to handle kernel NULL pointer > dereference at 0000000000000038 > <1>[45257161.351193] IP: [<ffffffff8117a5dc>] au_do_open_nondir+0x3b/0xaf > <4>[45257161.425916] PGD 80ffb067 PUD 2d20b067 PMD 0 > <4>[45257161.425923] Oops: 0002 [#1] PREEMPT SMP > <4>[45257161.425930] CPU 1 > <4>[45257161.425932] Modules linked in: arptable_filter arp_tables > dummy ipt_ULOG nf_conntrack_ipv6 nf_defrag_ipv6 ip6t_REJECT > ip6table_mangle > nf_conntrack_ipv4 nf_defrag_ipv4 xt_LOG xt_limit xt_hl xt_state > ipt_REJECT xt_multiport xt_tcpudp iptable_mangle msr sch_prio > kbfd(O) 8021q garp stp llc tun nf_conntrack_tftp iptable_raw > iptable_filter ip_tables xt_NOTRACK nf_conntrack xt_mark ip6table_raw > ip6table_filter ip6_tables x_tables scd(O) amd64_edac_mod k10temp > hwmon microcode kvm_amd kvm > <4>[45257161.425985] > <4>[45257161.425990] Pid: 29253, comm: sandy2 Tainted: P O > 3.4.43.Ar-3379181.4167M #1 > <4>[45257161.425996] RIP: 0010:[<ffffffff8117a5dc>] > [<ffffffff8117a5dc>] au_do_open_nondir+0x3b/0xaf > <4>[45257161.426004] RSP: 0018:ffff8800388b9c28 EFLAGS: 00210287 > <4>[45257161.426007] RAX: 0000000000000000 RBX: ffff8800576263c0 RCX: > 0000000000000001 > <4>[45257161.426011] RDX: ffff8800576263c0 RSI: 0000000000000000 RDI: > ffff8800576263c0 > <4>[45257161.426015] RBP: ffff8800388b9c48 R08: 0000000000000000 R09: > 0000000000000000 > <4>[45257161.426019] R10: ffff880104d1e500 R11: fefefefefefefeff R12: > 0000000000000000 > <4>[45257161.426022] R13: ffffffff8117a500 R14: ffff8800576263e8 R15: > 0000000000080000 > <4>[45257161.426027] FS: 0000000000000000(0000) > GS:ffff88013fb00000(0063) knlGS:00000000f73df8e0 > <4>[45257161.426031] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 > <4>[45257161.426034] CR2: 0000000000000038 CR3: 000000003ee9c000 CR4: > 00000000000007e0 > <4>[45257161.426038] DR0: 0000000000000000 DR1: 0000000000000000 DR2: > 0000000000000000 > <4>[45257161.426041] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: > 0000000000000400 > <4>[45257161.426046] Process sandy2 (pid: 29253, threadinfo > ffff8800388b8000, task ffff88003d9d5930) > <4>[45257161.426049] Stack: > <4>[45257161.426052] ffff8800388b9c48 ffff8800576263c0 > ffff880072891df8 ffffffff8117a5a1 > <4>[45257161.426059] ffff8800388b9c98 ffffffff811789cd > ffff8800388b9c78 ffffffff813eb090 > <4>[45257161.426065] ffff88013f180000 ffff88013f180000 > ffff8800576263c0 ffff8800576263c0 > <4>[45257161.426072] Call Trace: > <4>[45257161.426077] [<ffffffff8117a5a1>] ? au_do_open_nondir+0x0/0xaf > <4>[45257161.426081] [<ffffffff811789cd>] au_do_open+0x57/0xaa > <4>[45257161.426088] [<ffffffff813eb090>] ? sub_preempt_count+0x92/0xa5 > <4>[45257161.426093] [<ffffffff81179c5b>] ? aufs_open_nondir+0x0/0x80 > <4>[45257161.426097] [<ffffffff81179c8e>] aufs_open_nondir+0x33/0x80 > <4>[45257161.426103] [<ffffffff810a7945>] __dentry_open+0x158/0x275 > <4>[45257161.426107] [<ffffffff810a7b1f>] nameidata_to_filp+0x5b/0x62 > <4>[45257161.426113] [<ffffffff810b5854>] do_last+0x539/0x642 > <4>[45257161.426118] [<ffffffff810b5a28>] path_openat+0xcb/0x361 > <4>[45257161.426123] [<ffffffff810b5dad>] do_filp_open+0x38/0x84 > <4>[45257161.426129] [<ffffffff813eb090>] ? sub_preempt_count+0x92/0xa5 > <4>[45257161.426134] [<ffffffff813e8310>] ? _raw_spin_unlock+0x13/0x2e > <4>[45257161.426139] [<ffffffff810bfb9c>] ? alloc_fd+0xfb/0x10d > <4>[45257161.426144] [<ffffffff810a75f0>] do_sys_open+0x116/0x1af > <4>[45257161.426150] [<ffffffff810e4320>] compat_sys_open+0x16/0x18 > <4>[45257161.426155] [<ffffffff813ee28b>] cstar_dispatch+0x7/0x1e > <4>[45257161.426158] Code: ec 08 4c 8b 47 18 4d 3b 40 18 49 8b 40 30 > 74 07 49 83 78 10 00 74 29 48 85 c0 75 31 eb 22 48 8b 83 c0 00 00 00 > 44 89 e6 48 89 df > <44> 88 68 38 e8 b0 e1 ff ff 48 89 df e8 b7 df ff ff 31 c0 eb 05 > <1>[45257161.426218] RIP [<ffffffff8117a5dc>] au_do_open_nondir+0x3b/0xaf > <4>[45257161.501970] RSP <ffff8800388b9c28> > <0>[45257161.501974] Kernel version: 3.4.43 #1 SMP PREEMPT Fri Jul 22 > 13:33:33 PDT 2016 > <4>[45257161.608848] CR2: 0000000000000038 > > <4>[45257161.425996] RIP: 0010:[<ffffffff8117a5dc>] > [<ffffffff8117a5dc>] au_do_open_nondir+0x3b/0xaf > > 28 int au_do_open_nondir(struct file *file, int flags) > 29 { > 30 int err; > 31 aufs_bindex_t bindex; > 32 struct file *h_file; > 33 struct dentry *dentry; > 34 struct au_finfo *finfo; > 35 > 36 FiMustWriteLock(file); > 37 > 38 dentry = file->f_dentry; > 39 err = au_d_alive(dentry); > 40 if (unlikely(err)) > 41 goto out; > 42 > 43 finfo = au_fi(file); > 44 memset(&finfo->fi_htop, 0, sizeof(finfo->fi_htop)); > 45 atomic_set(&finfo->fi_mmapped, 0); > 46 bindex = au_dbstart(dentry); > 47 h_file = au_h_open(dentry, bindex, flags, file); > 48 if (IS_ERR(h_file)) > 49 err = PTR_ERR(h_file); > 50 else { > 51 au_set_fbstart(file, bindex); <======== > crash in this macro > 52 au_set_h_fptr(file, bindex, h_file); > 53 au_update_figen(file); > 54 /* todo: necessary? */ > 55 /* file->f_ra = h_file->f_ra; */ > 56 } > > 185 static inline void au_set_fbstart(struct file *file, aufs_bindex_t > bindex) > 186 { > 187 FiMustWriteLock(file); > 188 au_fi(file)->fi_btop = bindex; > 189 } > 190 > > 145 static inline struct au_finfo *au_fi(struct file *file) > 146 { > 147 return file->private_data; > 148 } > > > > struct inode *inode = d->d_inode; > err = 0; > if (unlikely(d_unhashed(d) || !inode || !inode->i_nlink)) > ffffffff8117a5c1: 49 83 78 10 00 cmpq $0x0,0x10(%r8) > ffffffff8117a5c6: 74 29 je > ffffffff8117a5f1 <au_do_open_nondir+0x50> > err = 0; > if (!IS_ROOT(d)) > err = au_d_hashed_positive(d); > else { > inode = d->d_inode; > if (unlikely(d_unlinked(d) || !inode || > !inode->i_nlink)) > ffffffff8117a5c8: 48 85 c0 test %rax,%rax > ffffffff8117a5cb: 75 31 jne > ffffffff8117a5fe <au_do_open_nondir+0x5d> > ffffffff8117a5cd: eb 22 jmp > ffffffff8117a5f1 <au_do_open_nondir+0x50> > } > > static inline void au_set_fbstart(struct file *file, aufs_bindex_t > bindex) > { > FiMustWriteLock(file); > au_fi(file)->fi_btop = bindex; > ffffffff8117a5cf: 48 8b 83 c0 00 00 00 mov 0xc0(%rbx),%rax > h_file = au_h_open(dentry, bindex, flags, file); > if (IS_ERR(h_file)) > err = PTR_ERR(h_file); > else { > au_set_fbstart(file, bindex); > au_set_h_fptr(file, bindex, h_file); > ffffffff8117a5d6: 44 89 e6 mov %r12d,%esi > ffffffff8117a5d9: 48 89 df mov %rbx,%rdi > ffffffff8117a5dc: 44 88 68 38 mov > %r13b,0x38(%rax) <============ crash point > ffffffff8117a5e0: e8 b0 e1 ff ff callq > ffffffff81178795 <au_set_h_fptr> > au_update_figen(file); > ffffffff8117a5e5: 48 89 df mov %rbx,%rdi > ffffffff8117a5e8: e8 b7 df ff ff callq > ffffffff811785a4 <au_update_figen> > ffffffff8117a5ed: 31 c0 xor %eax,%eax > ffffffff8117a5ef: eb 05 jmp > ffffffff8117a5f6 <au_do_open_nondir+0x55> > ffffffff8117a5f1: b8 fe ff ff ff mov > $0xfffffffe,%eax > /* file->f_ra = h_file->f_ra; */ > } > > > Reading symbols from /tmp/vmlinux...done. > (gdb) list *(au_do_open_nondir+0x3b) > 0xffffffff8117a5dc is in au_do_open_nondir > (/bld/kernel/rpmbuild/linux-3.4/fs/aufs/file.h:188). > warning: Source file is more recent than executable. > 183 } > 184 > 185 static inline void au_set_fbstart(struct file *file, > aufs_bindex_t bindex) > 186 { > 187 FiMustWriteLock(file); > 188 au_fi(file)->fi_btop = bindex; > 189 } > 190 > 191 static inline void au_set_fbend_dir(struct file *file, > aufs_bindex_t bindex) > 192 { > (gdb)