[Filesystems-devel] Bug#886329: Bug#886329: Bug#886329: aufs-dkms: Cannot use aufs union mount with Linux 4.14.7-1: kernel BUG at /var/lib/dkms/aufs/4.14+20171218/build/fs/aufs/finfo.c:113

intrigeri intrigeri at debian.org
Mon Feb 19 07:49:53 UTC 2018


Hi,

Jan Luca Naumann:
> could you please provide the additional information the upstream
> developer requests for in the README, then I will forward it to upstream:

Sure!

To make communication with upstream easier I've retried with Linux
4.15.0-1 and manually compiled aufs4.15 20180219 in an up-to-date and
mostly clean sid VM.

This bug appeared after upgrading from Linux 4.13 to Linux 4.14.

> When you have any problems or strange behaviour in aufs, please let me
> know with:
> - /proc/mounts (instead of the output of mount(8))

# cat /proc/mounts 
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=1005588k,nr_inodes=251397,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=204484k,mode=755 0 0
/dev/mapper/sid--desktop--vg-root / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/unified cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12446 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime,pagesize=2M 0 0
/dev/vda1 /boot ext2 rw,relatime,block_validity,barrier,user_xattr,acl 0 0
tmpfs /run/user/116 tmpfs rw,nosuid,nodev,relatime,size=204480k,mode=700,uid=116,gid=120 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=204480k,mode=700 0 0
aufs /tmp/mount aufs rw,relatime,si=df346fccc2a2e857 0 0

> - /sys/module/aufs/*

Not sure what exactly I should extract from this directory so let's
try that:

# for param in /sys/module/aufs/parameters/* ; do echo " - $(basename $param): $(cat $param)"; done 
 - allow_userns: N
 - brs: 1
 - debug: 1

# for f in $(find /sys/module/aufs -maxdepth 1 -type f); do echo " - $(basename $f): $(cat $f)" ; done
 - version: 4.15-20180219
 - taint: O
 - initsize: 0
 - initstate: live
 - srcversion: 4AEC6984C511AF142683949
 - coresize: 376832
 - refcnt: 2
cat: /sys/module/aufs/uevent: Permission denied
 - uevent: 

> - /sys/fs/aufs/* (if you have them)

# cat /sys/fs/aufs/config 
CONFIG_AUFS_FS=m
CONFIG_AUFS_BRANCH_MAX_127=y
CONFIG_AUFS_SBILIST=y
CONFIG_AUFS_DEBUG=y

# for f in /sys/fs/aufs/*/*; do echo " - $(basename $f): $(cat $f)" ; done
 - br0: /tmp/rw=rw
 - br1: /tmp/ro=rr+wh
 - brid0: 64
 - brid1: 65
 - xi_path: /tmp/rw/.aufs.xino

> - /debug/aufs/* (if you have them)

I have no /debug.

> - linux kernel version
>   if your kernel is not plain, for example modified by distributor,
>   the url where i can download its source is necessary too.

Debian sid's linux-image-4.15.0-1-amd64, version 4.15.4-1.
Patched source: http://ftp.us.debian.org/debian/pool/main/l/linux/linux-source-4.15_4.15.4-1_all.deb
that is
http://http.debian.net/debian/pool/main/l/linux/linux_4.15.4.orig.tar.xz
+ patches from http://http.debian.net/debian/pool/main/l/linux/linux_4.15.4.orig.tar.xz

> - aufs version which was printed at loading the module or booting the
>   system, instead of the date you downloaded.

aufs 4.15-20180219

> - configuration (define/undefine CONFIG_AUFS_xxx)

I did not change the defaults from
https://github.com/sfjro/aufs4-standalone.git
(branch aufs4.15) before compiling.

> - kernel configuration or /proc/config.gz (if you have it)

Attached.

> - behaviour which you think to be incorrect
> - actual operation, reproducible one is better

The first access to my aufs mountpoint segfaults but the second
access works fine:

  # modprobe aufs debug=1 \
    && mkdir /tmp/{ro,rw,mount} \
    && touch /tmp/ro/bla \
    && mount -t aufs -o dirs =/tmp/rw=rw:/tmp/ro=rr+wh aufs /tmp/mount \
    && ls /tmp/mount ; \
    ls /tmp/mount
  Segmentation fault
  bla

Corresponding kernel logs:

 aufs dump_opts:577:mount[3911]: DEBUG: add {b0, /tmp/rw, 0x1, 00000000761dd532}
 aufs dump_opts:577:mount[3911]: DEBUG: add {b1, /tmp/ro, 0x1004, 00000000ee455003}
 aufs au_xino_def:1329:mount[3911]: DEBUG: /tmp/rw/.aufs.xino
 aufs h_d_revalidate:890:ls[3912]: DEBUG: b0, rw
 aufs h_d_revalidate:890:ls[3912]: DEBUG: b1, ro
 aufs h_d_revalidate:890:ls[3912]: DEBUG: b0, rw
 aufs h_d_revalidate:890:ls[3912]: DEBUG: b1, ro
 aufs aufs_iterate_shared:479:ls[3912]: DEBUG: /, ctx{filldir, 0}
 aufs vfsub_iterate_dir:588:ls[3912]: DEBUG: rw, ctx{fillvdir [aufs], 0}
 aufs au_nhash_append_wh:251:ls[3912]: DEBUG: .wh.orph
 aufs au_nhash_append_wh:251:ls[3912]: DEBUG: .wh.aufs
 aufs au_xino_new_ino:746:ls[3912]: DEBUG: i11
 aufs au_nhash_append_wh:251:ls[3912]: DEBUG: .wh.plnk
 aufs vfsub_iterate_dir:588:ls[3912]: DEBUG: rw, ctx{fillvdir [aufs], 9223372036854775807}
 aufs vfsub_iterate_dir:588:ls[3912]: DEBUG: ro, ctx{fillvdir [aufs], 9223372036854775807}
 aufs test_known:225:ls[3912]: DEBUG: .
 aufs test_known:225:ls[3912]: DEBUG: ..
 aufs au_xino_new_ino:746:ls[3912]: DEBUG: i12
 aufs vfsub_iterate_dir:588:ls[3912]: DEBUG: ro, ctx{fillvdir [aufs], 9223372036854775807}
 aufs seek_vdir:805:ls[3912]: DEBUG: offset 0
 aufs au_vdir_fill_de:867:ls[3912]: DEBUG: ., off0, i2, dt4
 aufs au_vdir_fill_de:867:ls[3912]: DEBUG: .., off16, i11, dt4
 aufs au_vdir_fill_de:867:ls[3912]: DEBUG: bla, off32, i12, dt8
 aufs aufs_iterate_shared:479:ls[3912]: DEBUG: /, ctx{filldir, 48}
 aufs seek_vdir:805:ls[3912]: DEBUG: offset 48
 ------------[ cut here ]------------
 kernel BUG at /root/aufs4-standalone/fs/aufs/finfo.c:113!
 invalid opcode: 0000 [#1] SMP PTI
 Modules linked in: aufs(O) iscsi_target_mod target_core_mod uinput ebtable_filter ebtables ip6table_filter ip6_tables configfs devlink iptable_filter kvm_intel snd_hda_codec_generic kvm irqbypass joydev snd_hda_intel serio_raw pcspkr virtio_balloon snd_hda_codec virtio_console virtio_input snd_hda_core snd_hwdep sg snd_pcm snd_timer snd soundcor
  usbcore scsi_mod usb_common i2c_piix4 floppy button
 CPU: 0 PID: 3912 Comm: ls Tainted: G           O     4.15.0-1-amd64 #1 Debian 4.15.4-1
 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
 RIP: 0010:au_finfo_fin+0x55/0x60 [aufs]
 RSP: 0018:ffffa5c042a63e68 EFLAGS: 00010202
 RAX: 0000000000000001 RBX: ffff8e3bf8230700 RCX: 0000000000000020
 RDX: ffffffffffffffe0 RSI: ffff8e3bb8b0f900 RDI: ffff8e3bf74d3870
 RBP: ffff8e3bf5aaadf0 R08: 0000000000024b40 R09: ffffffffc0b125a0
 R10: fffff882c1d6aa80 R11: 0000000000000000 R12: ffff8e3bb8b0f900
 R13: ffff8e3bf5aaadc0 R14: ffff8e3bf8230700 R15: 0000000000000001
 FS:  00007f9b333d6040(0000) GS:ffff8e3bffc00000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 0000562812de58c8 CR3: 0000000077ea6001 CR4: 00000000001606f0
 Call Trace:
  aufs_release_dir+0x101/0x130 [aufs]
  __fput+0xd8/0x210
  task_work_run+0x8a/0xb0
  exit_to_usermode_loop+0xb9/0xc0
  do_syscall_64+0x127/0x130
  entry_SYSCALL_64_after_hwframe+0x21/0x86
 RIP: 0033:0x7f9b32cbe747
 RSP: 002b:00007ffe6dc0e3d0 EFLAGS: 00000202 ORIG_RAX: 0000000000000003
 RAX: 0000000000000000 RBX: 0000000000000003 RCX: 00007f9b32cbe747
 RDX: 0000000000012740 RSI: 0000000000000000 RDI: 0000000000000003
 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000562812ddd905
 R10: 000000000000016c R11: 0000000000000202 R12: 00007f9b333d5ed8
 R13: 0000562812ddd890 R14: 0000562812ddd870 R15: 0000000000000000
 Code: b2 f3 e8 eb 48 8b b3 c8 00 00 00 48 83 7e 50 00 75 17 8b 05 ee d0 b9 ec 85 c0 75 0f 5b 48 8b 3d 02 6e 03 00 e9 dd ab cf eb 0f 0b <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 83 c7 08 48 
 RIP: au_finfo_fin+0x55/0x60 [aufs] RSP: ffffa5c042a63e68
 ---[ end trace fec727daa8019dc7 ]---
 aufs h_d_revalidate:890:ls[3913]: DEBUG: b0, rw
 aufs h_d_revalidate:890:ls[3913]: DEBUG: b1, ro
 aufs h_d_revalidate:890:ls[3913]: DEBUG: b0, rw
 aufs h_d_revalidate:890:ls[3913]: DEBUG: b1, ro
 aufs aufs_iterate_shared:479:ls[3913]: DEBUG: /, ctx{filldir, 0}
 aufs seek_vdir:805:ls[3913]: DEBUG: offset 0
 aufs au_vdir_fill_de:867:ls[3913]: DEBUG: ., off0, i2, dt4
 aufs au_vdir_fill_de:867:ls[3913]: DEBUG: .., off16, i11, dt4
 aufs au_vdir_fill_de:867:ls[3913]: DEBUG: bla, off32, i12, dt8
 aufs aufs_iterate_shared:479:ls[3913]: DEBUG: /, ctx{filldir, 48}
 aufs seek_vdir:805:ls[3913]: DEBUG: offset 48


Cheers,
-- 
intrigeri

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: config-4.15.0-1-amd64
URL: <http://lists.alioth.debian.org/pipermail/filesystems-devel/attachments/20180219/1f384726/attachment-0001.ksh>


More information about the Filesystems-devel mailing list