2016-04-19 21:35:52 |
Tycho Andersen |
bug |
|
|
added bug |
2016-04-19 21:39:34 |
Seth Forshee |
linux (Ubuntu): importance |
Undecided |
High |
|
2016-04-19 21:39:34 |
Seth Forshee |
linux (Ubuntu): status |
New |
Confirmed |
|
2016-04-19 21:39:34 |
Seth Forshee |
linux (Ubuntu): assignee |
|
Seth Forshee (sforshee) |
|
2016-04-19 21:39:46 |
Seth Forshee |
nominated for series |
|
Ubuntu Xenial |
|
2016-04-19 21:39:46 |
Seth Forshee |
bug task added |
|
linux (Ubuntu Xenial) |
|
2016-04-20 07:42:25 |
Fabian Grünbichler |
bug |
|
|
added subscriber Fabian Grünbichler |
2016-05-04 19:26:55 |
fcole90 |
summary |
oops when propagating mounts into containers |
oops when propagating mounts into containers - RIP: 0010:[<ffffffff8123cb3e>] [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0 |
|
2016-05-05 19:18:03 |
Seth Forshee |
description |
If I use LXD on xenial with a configuration that does something like: (/nfs in my case is an nfs mount, but based on the kernel code in question anything is probably okay):
devices:
bind:
type: disk
source: /nfs
path: /nfs
recursive: "true"
and then start the container and on the host, do a new mount:
sudo mount $ipaddr:/some/nfs/path /nfs/newpath
You get the following kernel oops:
Apr 11 21:59:36 stock2 kernel: [ 1648.993034] Oops: 0000 [#1] SMP
Apr 11 21:59:36 stock2 kernel: [ 1648.993415] Modules linked in: binfmt_misc veth rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache xt_CHECKSUM iptable_mangle xt_tcpudp ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bridge stp llc iptable_filter ip_tables x_tables zfs(PO) zunicode(PO) zcommon(PO) znvpair(PO) spl(O) zavl(PO) ppdev kvm_intel parport_pc joydev kvm input_leds mac_hid irqbypass parport i2c_piix4 8250_fintek serio_raw ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr sunrpc iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear cirrus ttm drm_kms_helper syscopyarea sysfillrect sysimgblt psmouse fb_sys_fops floppy drm pata_acpi
Apr 11 21:59:36 stock2 kernel: [ 1649.002015] CPU: 2 PID: 9449 Comm: mount.nfs Tainted: P O 4.4.0-18-generic #34+tych0201604111025
Apr 11 21:59:36 stock2 kernel: [ 1649.003037] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
Apr 11 21:59:36 stock2 kernel: [ 1649.004042] task: ffff880074c1a580 ti: ffff880067d30000 task.ti: ffff880067d30000
Apr 11 21:59:36 stock2 kernel: [ 1649.004810] RIP: 0010:[<ffffffff8123cb3e>] [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.005654] RSP: 0018:ffff880067d33d68 EFLAGS: 00010297
Apr 11 21:59:36 stock2 kernel: [ 1649.006211] RAX: ffff88003bb4ca80 RBX: ffff880074ad8300 RCX: ffff880074503500
Apr 11 21:59:36 stock2 kernel: [ 1649.006934] RDX: 0000000000000000 RSI: 000000000000019c RDI: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.007656] RBP: ffff880067d33d78 R08: ffff8800363bad80 R09: ffffffff813eac5c
Apr 11 21:59:36 stock2 kernel: [ 1649.008390] R10: ffffea00002b5800 R11: 0000000000018711 R12: ffff8800363ba600
Apr 11 21:59:36 stock2 kernel: [ 1649.009111] R13: ffff880067d33dc0 R14: ffff880074ad8300 R15: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.009835] FS: 00007f653eac4880(0000) GS:ffff88007cd00000(0000) knlGS:0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.010642] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Apr 11 21:59:36 stock2 kernel: [ 1649.011237] CR2: 0000000000000010 CR3: 0000000077a4e000 CR4: 00000000000006e0
Apr 11 21:59:36 stock2 kernel: [ 1649.011984] Stack:
Apr 11 21:59:36 stock2 kernel: [ 1649.012255] ffff880074ad8300 ffff8800363ba600 ffff880067d33db0 ffffffff8123d060
Apr 11 21:59:36 stock2 kernel: [ 1649.013070] ffff88003bb4ca80 ffff8800363ba600 ffff88000c211980 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.013892] ffff880067d33e98 ffff880067d33df8 ffffffff8122dd97 ffff88003bb4c900
Apr 11 21:59:36 stock2 kernel: [ 1649.014751] Call Trace:
Apr 11 21:59:36 stock2 kernel: [ 1649.015053] [<ffffffff8123d060>] propagate_mnt+0x120/0x150
Apr 11 21:59:36 stock2 kernel: [ 1649.015643] [<ffffffff8122dd97>] attach_recursive_mnt+0x147/0x230
Apr 11 21:59:36 stock2 kernel: [ 1649.016286] [<ffffffff8122ded8>] graft_tree+0x58/0x90
Apr 11 21:59:36 stock2 kernel: [ 1649.016809] [<ffffffff8122df9e>] do_add_mount+0x8e/0xd0
Apr 11 21:59:36 stock2 kernel: [ 1649.017342] [<ffffffff8122ed70>] do_mount+0x2c0/0xe00
Apr 11 21:59:36 stock2 kernel: [ 1649.017863] [<ffffffff8122e924>] ? copy_mount_options+0xb4/0x220
Apr 11 21:59:36 stock2 kernel: [ 1649.018466] [<ffffffff8122fbdf>] SyS_mount+0x9f/0x100
Apr 11 21:59:36 stock2 kernel: [ 1649.018996] [<ffffffff818243b2>] entry_SYSCALL_64_fastpath+0x16/0x71
Apr 11 21:59:36 stock2 kernel: [ 1649.019631] Code: 39 90 d8 00 00 00 75 ec 8b b0 10 01 00 00 48 89 3d 80 e1 f8 00 48 89 05 81 e1 f8 00 39 b1 10 01 00 00 74 19 48 8b bf d8 00 00 00 <48> 8b 47 10 48 89 3d 5f e1 f8 00 48 89 05 60 e1 f8 00 8b 43 30
Apr 11 21:59:36 stock2 kernel: [ 1649.022395] RIP [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.022990] RSP <ffff880067d33d68>
Apr 11 21:59:36 stock2 kernel: [ 1649.023362] CR2: 0000000000000010
Apr 11 21:59:36 stock2 kernel: [ 1649.027053] ---[ end trace 46ce79a38cba28a5 ]--- |
SRU Justification:
Impact: Propagation to some mount tree configurations can cause the kernel to oops. This is trivially reproducible using lxd.
Fix: Cherry pick from upstream user-namespace.git tree. Pull request into Linus' tree is pending.
Regression Potential: Both Eric and I have tested the fix and believe that the post-fix code will handle all cases the same as before except for the ones which weren't being handled correctly. I believe the regression potential is small.
---
If I use LXD on xenial with a configuration that does something like: (/nfs in my case is an nfs mount, but based on the kernel code in question anything is probably okay):
devices:
bind:
type: disk
source: /nfs
path: /nfs
recursive: "true"
and then start the container and on the host, do a new mount:
sudo mount $ipaddr:/some/nfs/path /nfs/newpath
You get the following kernel oops:
Apr 11 21:59:36 stock2 kernel: [ 1648.993034] Oops: 0000 [#1] SMP
Apr 11 21:59:36 stock2 kernel: [ 1648.993415] Modules linked in: binfmt_misc veth rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache xt_CHECKSUM iptable_mangle xt_tcpudp ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bridge stp llc iptable_filter ip_tables x_tables zfs(PO) zunicode(PO) zcommon(PO) znvpair(PO) spl(O) zavl(PO) ppdev kvm_intel parport_pc joydev kvm input_leds mac_hid irqbypass parport i2c_piix4 8250_fintek serio_raw ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr sunrpc iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear cirrus ttm drm_kms_helper syscopyarea sysfillrect sysimgblt psmouse fb_sys_fops floppy drm pata_acpi
Apr 11 21:59:36 stock2 kernel: [ 1649.002015] CPU: 2 PID: 9449 Comm: mount.nfs Tainted: P O 4.4.0-18-generic #34+tych0201604111025
Apr 11 21:59:36 stock2 kernel: [ 1649.003037] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
Apr 11 21:59:36 stock2 kernel: [ 1649.004042] task: ffff880074c1a580 ti: ffff880067d30000 task.ti: ffff880067d30000
Apr 11 21:59:36 stock2 kernel: [ 1649.004810] RIP: 0010:[<ffffffff8123cb3e>] [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.005654] RSP: 0018:ffff880067d33d68 EFLAGS: 00010297
Apr 11 21:59:36 stock2 kernel: [ 1649.006211] RAX: ffff88003bb4ca80 RBX: ffff880074ad8300 RCX: ffff880074503500
Apr 11 21:59:36 stock2 kernel: [ 1649.006934] RDX: 0000000000000000 RSI: 000000000000019c RDI: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.007656] RBP: ffff880067d33d78 R08: ffff8800363bad80 R09: ffffffff813eac5c
Apr 11 21:59:36 stock2 kernel: [ 1649.008390] R10: ffffea00002b5800 R11: 0000000000018711 R12: ffff8800363ba600
Apr 11 21:59:36 stock2 kernel: [ 1649.009111] R13: ffff880067d33dc0 R14: ffff880074ad8300 R15: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.009835] FS: 00007f653eac4880(0000) GS:ffff88007cd00000(0000) knlGS:0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.010642] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Apr 11 21:59:36 stock2 kernel: [ 1649.011237] CR2: 0000000000000010 CR3: 0000000077a4e000 CR4: 00000000000006e0
Apr 11 21:59:36 stock2 kernel: [ 1649.011984] Stack:
Apr 11 21:59:36 stock2 kernel: [ 1649.012255] ffff880074ad8300 ffff8800363ba600 ffff880067d33db0 ffffffff8123d060
Apr 11 21:59:36 stock2 kernel: [ 1649.013070] ffff88003bb4ca80 ffff8800363ba600 ffff88000c211980 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.013892] ffff880067d33e98 ffff880067d33df8 ffffffff8122dd97 ffff88003bb4c900
Apr 11 21:59:36 stock2 kernel: [ 1649.014751] Call Trace:
Apr 11 21:59:36 stock2 kernel: [ 1649.015053] [<ffffffff8123d060>] propagate_mnt+0x120/0x150
Apr 11 21:59:36 stock2 kernel: [ 1649.015643] [<ffffffff8122dd97>] attach_recursive_mnt+0x147/0x230
Apr 11 21:59:36 stock2 kernel: [ 1649.016286] [<ffffffff8122ded8>] graft_tree+0x58/0x90
Apr 11 21:59:36 stock2 kernel: [ 1649.016809] [<ffffffff8122df9e>] do_add_mount+0x8e/0xd0
Apr 11 21:59:36 stock2 kernel: [ 1649.017342] [<ffffffff8122ed70>] do_mount+0x2c0/0xe00
Apr 11 21:59:36 stock2 kernel: [ 1649.017863] [<ffffffff8122e924>] ? copy_mount_options+0xb4/0x220
Apr 11 21:59:36 stock2 kernel: [ 1649.018466] [<ffffffff8122fbdf>] SyS_mount+0x9f/0x100
Apr 11 21:59:36 stock2 kernel: [ 1649.018996] [<ffffffff818243b2>] entry_SYSCALL_64_fastpath+0x16/0x71
Apr 11 21:59:36 stock2 kernel: [ 1649.019631] Code: 39 90 d8 00 00 00 75 ec 8b b0 10 01 00 00 48 89 3d 80 e1 f8 00 48 89 05 81 e1 f8 00 39 b1 10 01 00 00 74 19 48 8b bf d8 00 00 00 <48> 8b 47 10 48 89 3d 5f e1 f8 00 48 89 05 60 e1 f8 00 8b 43 30
Apr 11 21:59:36 stock2 kernel: [ 1649.022395] RIP [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.022990] RSP <ffff880067d33d68>
Apr 11 21:59:36 stock2 kernel: [ 1649.023362] CR2: 0000000000000010
Apr 11 21:59:36 stock2 kernel: [ 1649.027053] ---[ end trace 46ce79a38cba28a5 ]--- |
|
2016-05-05 19:18:17 |
Seth Forshee |
nominated for series |
|
Ubuntu Vivid |
|
2016-05-05 19:18:17 |
Seth Forshee |
bug task added |
|
linux (Ubuntu Vivid) |
|
2016-05-05 19:18:17 |
Seth Forshee |
nominated for series |
|
Ubuntu Yakkety |
|
2016-05-05 19:18:17 |
Seth Forshee |
bug task added |
|
linux (Ubuntu Yakkety) |
|
2016-05-05 19:18:17 |
Seth Forshee |
nominated for series |
|
Ubuntu Trusty |
|
2016-05-05 19:18:17 |
Seth Forshee |
bug task added |
|
linux (Ubuntu Trusty) |
|
2016-05-05 19:18:17 |
Seth Forshee |
nominated for series |
|
Ubuntu Wily |
|
2016-05-05 19:18:17 |
Seth Forshee |
bug task added |
|
linux (Ubuntu Wily) |
|
2016-05-05 19:20:06 |
Seth Forshee |
linux (Ubuntu Wily): importance |
Undecided |
High |
|
2016-05-05 19:20:06 |
Seth Forshee |
linux (Ubuntu Wily): status |
New |
In Progress |
|
2016-05-05 19:20:06 |
Seth Forshee |
linux (Ubuntu Wily): assignee |
|
Seth Forshee (sforshee) |
|
2016-05-05 19:20:19 |
Seth Forshee |
linux (Ubuntu Vivid): importance |
Undecided |
High |
|
2016-05-05 19:20:19 |
Seth Forshee |
linux (Ubuntu Vivid): status |
New |
In Progress |
|
2016-05-05 19:20:19 |
Seth Forshee |
linux (Ubuntu Vivid): assignee |
|
Seth Forshee (sforshee) |
|
2016-05-05 19:20:34 |
Seth Forshee |
linux (Ubuntu Trusty): importance |
Undecided |
High |
|
2016-05-05 19:20:34 |
Seth Forshee |
linux (Ubuntu Trusty): status |
New |
In Progress |
|
2016-05-05 19:20:34 |
Seth Forshee |
linux (Ubuntu Trusty): assignee |
|
Seth Forshee (sforshee) |
|
2016-05-05 19:20:41 |
Seth Forshee |
linux (Ubuntu Xenial): status |
Confirmed |
In Progress |
|
2016-05-05 19:20:44 |
Seth Forshee |
linux (Ubuntu Yakkety): status |
Confirmed |
In Progress |
|
2016-05-05 19:23:00 |
Seth Forshee |
bug task added |
|
linux-lts-utopic (Ubuntu) |
|
2016-05-05 19:23:17 |
Seth Forshee |
linux-lts-utopic (Ubuntu Vivid): status |
New |
Invalid |
|
2016-05-05 19:23:28 |
Seth Forshee |
linux-lts-utopic (Ubuntu Wily): status |
New |
Invalid |
|
2016-05-05 19:23:38 |
Seth Forshee |
linux-lts-utopic (Ubuntu Xenial): status |
New |
Invalid |
|
2016-05-05 19:23:47 |
Seth Forshee |
linux-lts-utopic (Ubuntu Yakkety): status |
New |
Invalid |
|
2016-05-05 19:24:00 |
Seth Forshee |
linux-lts-utopic (Ubuntu Trusty): importance |
Undecided |
High |
|
2016-05-05 19:24:00 |
Seth Forshee |
linux-lts-utopic (Ubuntu Trusty): status |
New |
In Progress |
|
2016-05-05 19:24:00 |
Seth Forshee |
linux-lts-utopic (Ubuntu Trusty): assignee |
|
Seth Forshee (sforshee) |
|
2016-05-05 19:27:44 |
Seth Forshee |
description |
SRU Justification:
Impact: Propagation to some mount tree configurations can cause the kernel to oops. This is trivially reproducible using lxd.
Fix: Cherry pick from upstream user-namespace.git tree. Pull request into Linus' tree is pending.
Regression Potential: Both Eric and I have tested the fix and believe that the post-fix code will handle all cases the same as before except for the ones which weren't being handled correctly. I believe the regression potential is small.
---
If I use LXD on xenial with a configuration that does something like: (/nfs in my case is an nfs mount, but based on the kernel code in question anything is probably okay):
devices:
bind:
type: disk
source: /nfs
path: /nfs
recursive: "true"
and then start the container and on the host, do a new mount:
sudo mount $ipaddr:/some/nfs/path /nfs/newpath
You get the following kernel oops:
Apr 11 21:59:36 stock2 kernel: [ 1648.993034] Oops: 0000 [#1] SMP
Apr 11 21:59:36 stock2 kernel: [ 1648.993415] Modules linked in: binfmt_misc veth rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache xt_CHECKSUM iptable_mangle xt_tcpudp ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bridge stp llc iptable_filter ip_tables x_tables zfs(PO) zunicode(PO) zcommon(PO) znvpair(PO) spl(O) zavl(PO) ppdev kvm_intel parport_pc joydev kvm input_leds mac_hid irqbypass parport i2c_piix4 8250_fintek serio_raw ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr sunrpc iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear cirrus ttm drm_kms_helper syscopyarea sysfillrect sysimgblt psmouse fb_sys_fops floppy drm pata_acpi
Apr 11 21:59:36 stock2 kernel: [ 1649.002015] CPU: 2 PID: 9449 Comm: mount.nfs Tainted: P O 4.4.0-18-generic #34+tych0201604111025
Apr 11 21:59:36 stock2 kernel: [ 1649.003037] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
Apr 11 21:59:36 stock2 kernel: [ 1649.004042] task: ffff880074c1a580 ti: ffff880067d30000 task.ti: ffff880067d30000
Apr 11 21:59:36 stock2 kernel: [ 1649.004810] RIP: 0010:[<ffffffff8123cb3e>] [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.005654] RSP: 0018:ffff880067d33d68 EFLAGS: 00010297
Apr 11 21:59:36 stock2 kernel: [ 1649.006211] RAX: ffff88003bb4ca80 RBX: ffff880074ad8300 RCX: ffff880074503500
Apr 11 21:59:36 stock2 kernel: [ 1649.006934] RDX: 0000000000000000 RSI: 000000000000019c RDI: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.007656] RBP: ffff880067d33d78 R08: ffff8800363bad80 R09: ffffffff813eac5c
Apr 11 21:59:36 stock2 kernel: [ 1649.008390] R10: ffffea00002b5800 R11: 0000000000018711 R12: ffff8800363ba600
Apr 11 21:59:36 stock2 kernel: [ 1649.009111] R13: ffff880067d33dc0 R14: ffff880074ad8300 R15: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.009835] FS: 00007f653eac4880(0000) GS:ffff88007cd00000(0000) knlGS:0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.010642] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Apr 11 21:59:36 stock2 kernel: [ 1649.011237] CR2: 0000000000000010 CR3: 0000000077a4e000 CR4: 00000000000006e0
Apr 11 21:59:36 stock2 kernel: [ 1649.011984] Stack:
Apr 11 21:59:36 stock2 kernel: [ 1649.012255] ffff880074ad8300 ffff8800363ba600 ffff880067d33db0 ffffffff8123d060
Apr 11 21:59:36 stock2 kernel: [ 1649.013070] ffff88003bb4ca80 ffff8800363ba600 ffff88000c211980 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.013892] ffff880067d33e98 ffff880067d33df8 ffffffff8122dd97 ffff88003bb4c900
Apr 11 21:59:36 stock2 kernel: [ 1649.014751] Call Trace:
Apr 11 21:59:36 stock2 kernel: [ 1649.015053] [<ffffffff8123d060>] propagate_mnt+0x120/0x150
Apr 11 21:59:36 stock2 kernel: [ 1649.015643] [<ffffffff8122dd97>] attach_recursive_mnt+0x147/0x230
Apr 11 21:59:36 stock2 kernel: [ 1649.016286] [<ffffffff8122ded8>] graft_tree+0x58/0x90
Apr 11 21:59:36 stock2 kernel: [ 1649.016809] [<ffffffff8122df9e>] do_add_mount+0x8e/0xd0
Apr 11 21:59:36 stock2 kernel: [ 1649.017342] [<ffffffff8122ed70>] do_mount+0x2c0/0xe00
Apr 11 21:59:36 stock2 kernel: [ 1649.017863] [<ffffffff8122e924>] ? copy_mount_options+0xb4/0x220
Apr 11 21:59:36 stock2 kernel: [ 1649.018466] [<ffffffff8122fbdf>] SyS_mount+0x9f/0x100
Apr 11 21:59:36 stock2 kernel: [ 1649.018996] [<ffffffff818243b2>] entry_SYSCALL_64_fastpath+0x16/0x71
Apr 11 21:59:36 stock2 kernel: [ 1649.019631] Code: 39 90 d8 00 00 00 75 ec 8b b0 10 01 00 00 48 89 3d 80 e1 f8 00 48 89 05 81 e1 f8 00 39 b1 10 01 00 00 74 19 48 8b bf d8 00 00 00 <48> 8b 47 10 48 89 3d 5f e1 f8 00 48 89 05 60 e1 f8 00 8b 43 30
Apr 11 21:59:36 stock2 kernel: [ 1649.022395] RIP [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.022990] RSP <ffff880067d33d68>
Apr 11 21:59:36 stock2 kernel: [ 1649.023362] CR2: 0000000000000010
Apr 11 21:59:36 stock2 kernel: [ 1649.027053] ---[ end trace 46ce79a38cba28a5 ]--- |
SRU Justification:
Impact: Propagation to some mount tree configurations can cause the kernel to oops. This is trivially reproducible using lxd.
Fix: Upstream cherry pick.
Regression Potential: Both Eric and I have tested the fix and believe that the post-fix code will handle all cases the same as before except for the ones which weren't being handled correctly. I believe the regression potential is small.
---
If I use LXD on xenial with a configuration that does something like: (/nfs in my case is an nfs mount, but based on the kernel code in question anything is probably okay):
devices:
bind:
type: disk
source: /nfs
path: /nfs
recursive: "true"
and then start the container and on the host, do a new mount:
sudo mount $ipaddr:/some/nfs/path /nfs/newpath
You get the following kernel oops:
Apr 11 21:59:36 stock2 kernel: [ 1648.993034] Oops: 0000 [#1] SMP
Apr 11 21:59:36 stock2 kernel: [ 1648.993415] Modules linked in: binfmt_misc veth rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace fscache xt_CHECKSUM iptable_mangle xt_tcpudp ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bridge stp llc iptable_filter ip_tables x_tables zfs(PO) zunicode(PO) zcommon(PO) znvpair(PO) spl(O) zavl(PO) ppdev kvm_intel parport_pc joydev kvm input_leds mac_hid irqbypass parport i2c_piix4 8250_fintek serio_raw ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr sunrpc iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear cirrus ttm drm_kms_helper syscopyarea sysfillrect sysimgblt psmouse fb_sys_fops floppy drm pata_acpi
Apr 11 21:59:36 stock2 kernel: [ 1649.002015] CPU: 2 PID: 9449 Comm: mount.nfs Tainted: P O 4.4.0-18-generic #34+tych0201604111025
Apr 11 21:59:36 stock2 kernel: [ 1649.003037] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
Apr 11 21:59:36 stock2 kernel: [ 1649.004042] task: ffff880074c1a580 ti: ffff880067d30000 task.ti: ffff880067d30000
Apr 11 21:59:36 stock2 kernel: [ 1649.004810] RIP: 0010:[<ffffffff8123cb3e>] [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.005654] RSP: 0018:ffff880067d33d68 EFLAGS: 00010297
Apr 11 21:59:36 stock2 kernel: [ 1649.006211] RAX: ffff88003bb4ca80 RBX: ffff880074ad8300 RCX: ffff880074503500
Apr 11 21:59:36 stock2 kernel: [ 1649.006934] RDX: 0000000000000000 RSI: 000000000000019c RDI: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.007656] RBP: ffff880067d33d78 R08: ffff8800363bad80 R09: ffffffff813eac5c
Apr 11 21:59:36 stock2 kernel: [ 1649.008390] R10: ffffea00002b5800 R11: 0000000000018711 R12: ffff8800363ba600
Apr 11 21:59:36 stock2 kernel: [ 1649.009111] R13: ffff880067d33dc0 R14: ffff880074ad8300 R15: 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.009835] FS: 00007f653eac4880(0000) GS:ffff88007cd00000(0000) knlGS:0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.010642] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
Apr 11 21:59:36 stock2 kernel: [ 1649.011237] CR2: 0000000000000010 CR3: 0000000077a4e000 CR4: 00000000000006e0
Apr 11 21:59:36 stock2 kernel: [ 1649.011984] Stack:
Apr 11 21:59:36 stock2 kernel: [ 1649.012255] ffff880074ad8300 ffff8800363ba600 ffff880067d33db0 ffffffff8123d060
Apr 11 21:59:36 stock2 kernel: [ 1649.013070] ffff88003bb4ca80 ffff8800363ba600 ffff88000c211980 0000000000000000
Apr 11 21:59:36 stock2 kernel: [ 1649.013892] ffff880067d33e98 ffff880067d33df8 ffffffff8122dd97 ffff88003bb4c900
Apr 11 21:59:36 stock2 kernel: [ 1649.014751] Call Trace:
Apr 11 21:59:36 stock2 kernel: [ 1649.015053] [<ffffffff8123d060>] propagate_mnt+0x120/0x150
Apr 11 21:59:36 stock2 kernel: [ 1649.015643] [<ffffffff8122dd97>] attach_recursive_mnt+0x147/0x230
Apr 11 21:59:36 stock2 kernel: [ 1649.016286] [<ffffffff8122ded8>] graft_tree+0x58/0x90
Apr 11 21:59:36 stock2 kernel: [ 1649.016809] [<ffffffff8122df9e>] do_add_mount+0x8e/0xd0
Apr 11 21:59:36 stock2 kernel: [ 1649.017342] [<ffffffff8122ed70>] do_mount+0x2c0/0xe00
Apr 11 21:59:36 stock2 kernel: [ 1649.017863] [<ffffffff8122e924>] ? copy_mount_options+0xb4/0x220
Apr 11 21:59:36 stock2 kernel: [ 1649.018466] [<ffffffff8122fbdf>] SyS_mount+0x9f/0x100
Apr 11 21:59:36 stock2 kernel: [ 1649.018996] [<ffffffff818243b2>] entry_SYSCALL_64_fastpath+0x16/0x71
Apr 11 21:59:36 stock2 kernel: [ 1649.019631] Code: 39 90 d8 00 00 00 75 ec 8b b0 10 01 00 00 48 89 3d 80 e1 f8 00 48 89 05 81 e1 f8 00 39 b1 10 01 00 00 74 19 48 8b bf d8 00 00 00 <48> 8b 47 10 48 89 3d 5f e1 f8 00 48 89 05 60 e1 f8 00 8b 43 30
Apr 11 21:59:36 stock2 kernel: [ 1649.022395] RIP [<ffffffff8123cb3e>] propagate_one+0xbe/0x1c0
Apr 11 21:59:36 stock2 kernel: [ 1649.022990] RSP <ffff880067d33d68>
Apr 11 21:59:36 stock2 kernel: [ 1649.023362] CR2: 0000000000000010
Apr 11 21:59:36 stock2 kernel: [ 1649.027053] ---[ end trace 46ce79a38cba28a5 ]--- |
|
2016-05-06 16:41:24 |
Seth Forshee |
linux (Ubuntu Yakkety): status |
In Progress |
Fix Committed |
|
2016-05-06 20:20:44 |
Kamal Mostafa |
linux (Ubuntu Trusty): status |
In Progress |
Fix Committed |
|
2016-05-06 20:20:58 |
Kamal Mostafa |
linux (Ubuntu Vivid): status |
In Progress |
Fix Committed |
|
2016-05-06 20:21:10 |
Kamal Mostafa |
linux (Ubuntu Wily): status |
In Progress |
Fix Committed |
|
2016-05-06 20:21:19 |
Kamal Mostafa |
linux (Ubuntu Xenial): status |
In Progress |
Fix Committed |
|
2016-05-06 20:21:29 |
Kamal Mostafa |
linux-lts-utopic (Ubuntu Trusty): status |
In Progress |
Fix Committed |
|
2016-05-19 14:53:54 |
Kamal Mostafa |
tags |
|
verification-needed-trusty |
|
2016-05-19 14:54:20 |
Kamal Mostafa |
tags |
verification-needed-trusty |
verification-needed-trusty verification-needed-vivid |
|
2016-05-19 14:54:35 |
Kamal Mostafa |
tags |
verification-needed-trusty verification-needed-vivid |
verification-needed-trusty verification-needed-vivid verification-needed-wily |
|
2016-05-19 14:55:20 |
Kamal Mostafa |
tags |
verification-needed-trusty verification-needed-vivid verification-needed-wily |
verification-needed-trusty verification-needed-vivid verification-needed-wily verification-needed-xenial |
|
2016-05-19 15:30:33 |
Seth Forshee |
tags |
verification-needed-trusty verification-needed-vivid verification-needed-wily verification-needed-xenial |
verification-done-trusty verification-done-vivid verification-done-wily verification-done-xenial |
|
2016-05-23 16:56:48 |
Launchpad Janitor |
linux (Ubuntu Yakkety): status |
Fix Committed |
Fix Released |
|
2016-05-23 16:56:48 |
Launchpad Janitor |
cve linked |
|
2016-2117 |
|
2016-05-23 16:56:48 |
Launchpad Janitor |
cve linked |
|
2016-2187 |
|
2016-05-23 16:56:48 |
Launchpad Janitor |
cve linked |
|
2016-4485 |
|
2016-05-23 16:56:48 |
Launchpad Janitor |
cve linked |
|
2016-4486 |
|
2016-05-23 16:56:48 |
Launchpad Janitor |
cve linked |
|
2016-4558 |
|
2016-05-31 14:39:53 |
Launchpad Janitor |
linux (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|
2016-05-31 14:39:53 |
Launchpad Janitor |
cve linked |
|
2015-4004 |
|
2016-05-31 14:39:53 |
Launchpad Janitor |
cve linked |
|
2016-2069 |
|
2016-05-31 14:39:53 |
Launchpad Janitor |
cve linked |
|
2016-3672 |
|
2016-05-31 14:39:53 |
Launchpad Janitor |
cve linked |
|
2016-3951 |
|
2016-05-31 14:39:53 |
Launchpad Janitor |
cve linked |
|
2016-3955 |
|
2016-06-09 21:51:51 |
Launchpad Janitor |
linux-lts-utopic (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|
2016-06-09 21:51:51 |
Launchpad Janitor |
cve linked |
|
2016-1583 |
|
2016-06-09 21:56:20 |
Launchpad Janitor |
linux (Ubuntu Vivid): status |
Fix Committed |
Fix Released |
|
2016-06-09 21:56:37 |
Launchpad Janitor |
linux (Ubuntu Wily): status |
Fix Committed |
Fix Released |
|
2016-06-09 21:57:57 |
Launchpad Janitor |
linux (Ubuntu Xenial): status |
Fix Committed |
Fix Released |
|
2016-08-12 17:19:49 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/trusty-updates/linux-lts-wily |
|
2016-08-12 18:30:37 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/trusty-proposed/linux-lts-vivid |
|