Hi,
   I was testing my aufs-related fixes to dockerd, and came upon this
   kernel oops:
   # dmesg
   ....
   [35180.792125] ------------[ cut here ]------------
   [35180.792127] kernel BUG at
   /build/linux-3btXxq/linux-4.15.0/fs/aufs/dynop.c:207!
   [35180.795621] invalid opcode: 0000 [#1] SMP PTI
   [35180.797690] Modules linked in: veth ipt_MASQUERADE
   nf_nat_masquerade_ipv4 nf_conntrack_netlink nfnetlink xfrm_user
   xfrm_algo iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4
   xt_addrtype iptable_filter xt_conntrack nf_nat nf_conntrack
   br_netfilter bridge stp llc aufs overlay nls_iso8859_1 kvm_intel kvm
   irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel input_leds
   joydev serio_raw sch_fq_codel ib_iser rdma_cm iw_cm ib_cm ib_core
   iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables
   autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov
   async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1
   raid0 multipath linear aesni_intel aes_x86_64 virtio_blk crypto_simd
   virtio_net cryptd glue_helper psmouse virtio_scsi floppy
   [35180.832904] CPU: 2 PID: 18881 Comm: dockerd Not tainted
   4.15.0-50-generic #54-Ubuntu
   [35180.836106] Hardware name: DigitalOcean Droplet, BIOS 20171212
   12/12/2017
   [35180.838893] RIP: 0010:dy_bug+0x9/0x10 [aufs]
   [35180.840793] RSP: 0018:ffffb1a984017a20 EFLAGS: 00010246
   [35180.842931] RAX: ffffffff9dc4f060 RBX: ffff9b5d8f890700 RCX:
   0000000000000000
   [35180.845755] RDX: 0000000000000000 RSI: ffffffff9dc4f060 RDI:
   ffff9b5d8f890720
   [35180.849012] RBP: ffffb1a984017a20 R08: ffff9b5e9fd27120 R09:
   ffff9b5d9b814060
   [35180.853563] R10: ffffffff9cff2100 R11: 0000000000000c40 R12:
   ffff9b5d9b814060
   [35180.858243] R13: ffff9b5d9b814000 R14: ffff9b5cb40d7c58 R15:
   ffff9b5d9c295e00
   [35180.865344] FS: A 00007f8e7bff7700(0000) GS:ffff9b5e9fd00000(0000)
   knlGS:0000000000000000
   [35180.869508] CS: A 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
   [35180.872336] CR2: 000000c4200f8160 CR3: 0000000183c94006 CR4:
   00000000007606e0
   [35180.875245] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
   0000000000000000
   [35180.878249] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
   0000000000000400
   [35180.881038] PKRU: 55555554
   [35180.882316] Call Trace:
   [35180.883546] A au_dy_iaop+0x1c3/0x320 [aufs]
   [35180.885077] A ? au_iinfo_init+0x6e/0xd0 [aufs]
   [35180.886772] A au_new_inode+0x4bb/0x730 [aufs]
   [35180.888616] A epilog+0xfd/0x190 [aufs]
   [35180.890320] A add_simple+0x2b1/0x420 [aufs]
   [35180.893184] A au_aopen_or_create+0x46/0x60 [aufs]
   [35180.895149] A aufs_atomic_open+0x1c8/0x3b0 [aufs]
   [35180.896990] A ? aufs_permission+0x190/0x2d0 [aufs]
   [35180.899162] A ? __inode_permission+0x5b/0x160
   [35180.900976] A path_openat+0xaff/0x1770
   [35180.902637] A ? path_openat+0xaff/0x1770
   [35180.904326] A ? au_h_iptr+0x16/0x40 [aufs]
   [35180.906018] A do_filp_open+0x9b/0x110
   [35180.907605] A ? __check_object_size+0xaf/0x1b0
   [35180.909913] A ? __alloc_fd+0xb2/0x170
   [35180.912472] A do_sys_open+0x1bb/0x2c0
   [35180.915163] A ? do_sys_open+0x1bb/0x2c0
   [35180.917923] A SyS_openat+0x14/0x20
   [35180.920395] A do_syscall_64+0x73/0x130
   [35180.925637] A entry_SYSCALL_64_after_hwframe+0x3d/0xa2
   [35180.928896] RIP: 0033:0x4b98ca
   [35180.930976] RSP: 002b:000000c422c76d10 EFLAGS: 00000202 ORIG_RAX:
   0000000000000101
   [35180.935378] RAX: ffffffffffffffda RBX: 0000000000000000 RCX:
   00000000004b98ca
   [35180.939158] RDX: 0000000000080040 RSI: 000000c4252efa40 RDI:
   ffffffffffffff9c
   [35180.942999] RBP: 000000c422c76d90 R08: 0000000000000000 R09:
   0000000000000000
   [35180.945841] R10: 00000000000001ed R11: 0000000000000202 R12:
   ffffffffffffffff
   [35180.948867] R13: 000000000000003d R14: 000000000000003c R15:
   0000000000000049
   [35180.951815] Code: 01 00 48 85 c0 74 07 48 89 87 c8 00 00 00 5d c3 66
   90 0f 1f 44 00 00 55 48 89 e5 e8 a2 c5 93 dc 5d c3 0f 1f 44 00 00 55 48
   89 e5 <0f> 0b 0f 1f 44 00 00 0f 1f 44 00 00 55 48 89 fa 48 63 47 f0 48
   [35180.960552] RIP: dy_bug+0x9/0x10 [aufs] RSP: ffffb1a984017a20
   [35180.962961] ---[ end trace 9c8a22b601f49ad0 ]---
   This is on Ubuntu 18.04 with their latest stable kernel (based on
   4.15), and here's the version of aufs kmod:
   # modinfo aufs
   filename: A  A  A
   /lib/modules/4.15.0-50-generic/kernel/fs/aufs/aufs.ko
   alias: A  A  A  A  A fs-aufs
   version: A  A  A  A 4.15-20180219
   description: A  A aufs -- Advanced multi layered unification filesystem
   author: A  A  A  A  Junjiro R. Okajima
   <[1]aufs-users@lists.sourceforge.net>
   license: A  A  A  A GPL
   srcversion: A  A  9C7732CB810A119C03C59CE
   depends: A  A  A  A
   retpoline: A  A  A Y
   intree: A  A  A  A  Y
   name: A  A  A  A  A  aufs
   vermagic: A  A  A  4.15.0-50-generic SMP mod_unload
   signat: A  A  A  A  PKCS#7
   signer: A  A  A  A
   sig_key: A  A  A  A
   sig_hashalgo: A  md4
   parm: A  A  A  A  A  brs:use <sysfs>/fs/aufs/si_*/brN (int)
   parm: A  A  A  A  A  allow_userns:allow unprivileged to mount under
   userns (bool)
   Kernel sources for this can be found by doing
   git clone
   git://[2]git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bio
   nic
   git reset --hardA Ubuntu-4.15.0-50.54
   I'm not sure I can recreate this without docker, but what the test does
   is pretty simple: it prepares and mounts an aufs (with a parent) when
   creates a few directories and empty files in it, then unmounts it and
   removes everything. All this is massively parallel, but on different
   aufs mounts. Note that I was running this test for days, and only got
   this oops once, so I'm pretty sure it is very hard to reproduce.
   Unfortunately I had to reboot the node since this happened. If I will
   reproduce it again, please let me know what other information might be
   helpful.
   Docker is written in Go, and from its stack dump I see a goroutine
   (thread) got stuck in open() syscall while trying to create a file:
   goroutine 363684 [syscall, 70 minutes]:
   syscall.Syscall6(0x101, 0xffffffffffffff9c, 0xc4252efa40, 0x80040,
   0x1ed, 0x0, 0x0, 0x6e, 0xc4252ef9d0, 0x6e)
   A  A  A  A  /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
   syscall.openat(0xffffffffffffff9c, 0xc4252ef9d0, 0x6e, 0x80040, 0x1ed,
   0xc4252ef960, 0x6f, 0x6f)
   A  A  A  A  /usr/local/go/src/syscall/zsyscall_linux_amd64.go:38 +0xae
   syscall.Open(0xc4252ef9d0, 0x6e, 0x80040, 0x1ed, 0xc4252ef8f0, 0x6f,
   0xc4252ef9d0)
   A  A  A  A  /usr/local/go/src/syscall/syscall_linux.go:51 +0x50
   os.openFileNolog(0xc4252ef9d0, 0x6e, 0x40, 0x1ed, 0x2, 0xc4252ef9d0,
   0x6e)
   A  A  A  A  /usr/local/go/src/os/file_unix.go:168 +0x7a
   os.OpenFile(0xc4252ef9d0, 0x6e, 0x40, 0xc4000001ed, 0x6e, 0x0, 0x0)
   A  A  A  A  /usr/local/go/src/os/file.go:269 +0x5f
   [3]github.com/docker/docker/daemon/initlayer.Setup(0xc4230d3ce0, 0x5e,
   0x0, 0x0, 0x12491ed, 0x1)
   A  A  A  A
   /go/src/[4]github.com/docker/docker/daemon/initlayer/setup_unix.go:50
   +0x94e
   [5]github.com/docker/docker/daemon.(*Daemon).setupInitLayer(0xc4203d600
   0, 0xc4230d3ce0, 0x5e, 0x0, 0xc4200beb48)
   A  A  A  A  /go/src/[6]github.com/docker/docker/daemon/daemon.go:1033
   +0x57
   [7]github.com/docker/docker/daemon.(*Daemon).(github.com/docker/docker/
   daemon.setupInitLayer)-fm(0xc4230d3ce0, 0x5e, 0x45, 0x0)
   A  A  A  A
   /go/src/[8]github.com/docker/docker/daemon/daemon_unix.go:934 +0x3e
   [9]github.com/docker/docker/layer.(*layerStore).initMount(0xc4203b5310,
   0xc421892980, 0x40, 0xc420582600, 0x40, 0x0, 0x0, 0xc4226b3bb0, 0x0,
   0x0, ...)
   A  A  A  A
   /go/src/[10]github.com/docker/docker/layer/layer_store.go:662 +0x1de
   [11]github.com/docker/docker/layer.(*layerStore).CreateRWLayer(0xc4203b
   5310, 0xc4218928c0, 0x40, 0xc420040a00, 0x47, 0xc4233f2ec0, 0x0, 0x0,
   0x0, 0x0)
   A  A  A  A
   /go/src/[12]github.com/docker/docker/layer/layer_store.go:516 +0x537
   [13]github.com/docker/docker/daemon.(*Daemon).setRWLayer(0xc4203d6000,
   0xc423c50fc0, 0xc422cbfc00, 0x0)
   A  A  A  A  /go/src/[14]github.com/docker/docker/daemon/create.go:251
   +0x11f
   [15]github.com/docker/docker/daemon.(*Daemon).create(0xc4203d6000, 0x0,
   0x0, 0xc422bc3e00, 0xc422cbfc00, 0xc4258e3420, 0x0, 0x0, 0x0, 0x0, ...)
   A  A  A  A  /go/src/[16]github.com/docker/docker/daemon/create.go:133
   +0x236
   [17]github.com/docker/docker/daemon.(*Daemon).containerCreate(0xc4203d6
   000, 0x0, 0x0, 0xc422bc3e00, 0xc422cbfc00, 0xc4258e3420, 0x0, 0x0, 0x0,
   0x0, ...)
   A  A  A  A  /go/src/[18]github.com/docker/docker/daemon/create.go:60
   +0x1a4
   [19]github.com/docker/docker/daemon.(*Daemon).ContainerCreate(0xc4203d6
   000, 0x0, 0x0, 0xc422bc3e00, 0xc422cbfc00, 0xc4258e3420, 0x0, 0x0, 0x0,
   0x0, ...)
   A  A  A  A  /go/src/[20]github.com/docker/docker/daemon/create.go:33
   +0x9d
   Regards,
   A  Kir.

References

   1. mailto:aufs-users@lists.sourceforge.net
   2. http://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic
   3. http://github.com/docker/docker/daemon/initlayer.Setup(0xc4230d3ce0
   4. http://github.com/docker/docker/daemon/initlayer/setup_unix.go:50
   5. 
http://github.com/docker/docker/daemon.(*Daemon).setupInitLayer(0xc4203d6000
   6. http://github.com/docker/docker/daemon/daemon.go:1033
   7. 
http://github.com/docker/docker/daemon.(*Daemon).(github.com/docker/docker/daemon.setupInitLayer)-fm(0xc4230d3ce0
   8. http://github.com/docker/docker/daemon/daemon_unix.go:934
   9. http://github.com/docker/docker/layer.(*layerStore).initMount(0xc4203b5310
  10. http://github.com/docker/docker/layer/layer_store.go:662
  11. 
http://github.com/docker/docker/layer.(*layerStore).CreateRWLayer(0xc4203b5310
  12. http://github.com/docker/docker/layer/layer_store.go:516
  13. http://github.com/docker/docker/daemon.(*Daemon).setRWLayer(0xc4203d6000
  14. http://github.com/docker/docker/daemon/create.go:251
  15. http://github.com/docker/docker/daemon.(*Daemon).create(0xc4203d6000
  16. http://github.com/docker/docker/daemon/create.go:133
  17. 
http://github.com/docker/docker/daemon.(*Daemon).containerCreate(0xc4203d6000
  18. http://github.com/docker/docker/daemon/create.go:60
  19. 
http://github.com/docker/docker/daemon.(*Daemon).ContainerCreate(0xc4203d6000
  20. http://github.com/docker/docker/daemon/create.go:33


Reply via email to