aufs crash at au_set_fbstart in aufs3 (3.4 kernel).

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

 



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)



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux