openvswitch: kernel oops destroying interfaces on i386
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
In Progress
|
High
|
Unassigned | ||
Artful |
Won't Fix
|
High
|
Unassigned | ||
Bionic |
In Progress
|
High
|
Unassigned | ||
Cosmic |
In Progress
|
High
|
Unassigned | ||
Disco |
In Progress
|
High
|
Unassigned | ||
openvswitch (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Artful |
Invalid
|
Undecided
|
Unassigned | ||
Bionic |
Invalid
|
Undecided
|
Unassigned | ||
Cosmic |
Invalid
|
Undecided
|
Unassigned | ||
Disco |
Invalid
|
Undecided
|
Unassigned |
Bug Description
== SRU Justification ==
Commit 120645513f55 ("openvswitch: Add eventmask support to CT action.") introduced a regression on i386. Simply running the following commands in a loop will trigger a crash rather quickly:
ovs-vsctl add-br test
ovs-vsctl del-br test
== Fix ==
Disable the logic introduced by the above commit on i386.
== Regression Potential ==
Low, the above commit introduced a new feature. Per upstream, the result of not having this feature results in higher CPU usage and potential buffering issues in user space.
== Test Case ==
See SRU justification above.
Original bug description:
Reproducable on bionic using the autopkgtest's from openvswitch on i386:
[ 41.420568] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 41.421000] IP: igmp_group_
[ 41.421246] *pdpt = 000000001d62c001 *pde = 0000000000000000
[ 41.421659] Oops: 0000 [#1] SMP
[ 41.421852] Modules linked in: veth openvswitch nf_conntrack_ipv6 nf_nat_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_defrag_ipv6 nf_nat nf_conntrack libcrc32c 9p fscache ppdev kvm_intel kvm 9pnet_virtio irqbypass input_leds joydev 9pnet parport_pc serio_raw parport i2c_piix4 qemu_fw_cfg mac_hid sch_fq_codel ip_tables x_tables autofs4 btrfs xor raid6_pq psmouse virtio_blk virtio_net pata_acpi floppy
[ 41.423855] CPU: 0 PID: 5 Comm: kworker/u2:0 Tainted: G W 4.13.0-18-generic #21-Ubuntu
[ 41.424355] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
[ 41.424849] Workqueue: netns cleanup_net
[ 41.425071] task: db8fba80 task.stack: dba10000
[ 41.425346] EIP: igmp_group_
[ 41.425656] EFLAGS: 00010202 CPU: 0
[ 41.425864] EAX: 00000000 EBX: dd726360 ECX: dba11e6c EDX: 00000002
[ 41.426335] ESI: 00000000 EDI: dd4db500 EBP: dba11dcc ESP: dba11d94
[ 41.426687] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 41.426990] CR0: 80050033 CR2: 00000000 CR3: 1e6d6d60 CR4: 000006f0
[ 41.427340] Call Trace:
[ 41.427485] ? __wake_up+0x36/0x40
[ 41.427680] ip_mc_down+
[ 41.427869] inetdev_
[ 41.428082] ? skb_dequeue+
[ 41.428286] ? wireless_
[ 41.428541] notifier_
[ 41.428772] raw_notifier_
[ 41.429023] call_netdevice_
[ 41.429301] dev_close_
[ 41.429509] rollback_
[ 41.429768] unregister_
[ 41.430075] default_
[ 41.430344] ? do_wait_
[ 41.430650] ops_exit_
[ 41.430886] cleanup_
[ 41.431090] process_
[ 41.431317] worker_
[ 41.431525] kthread+0xf3/0x110
[ 41.431714] ? process_
[ 41.431941] ? kthread_
[ 41.432187] ret_from_
[ 41.432382] Code: 90 90 90 90 90 90 90 90 90 90 3e 8d 74 26 00 55 89 e5 57 56 53 89 c3 83 ec 2c 8b 33 65 a1 14 00 00 00 89 45 f0 31 c0 80 7b 4b 00 <8b> 06 8b b8 20 03 00 00 8b 43 04 0f 85 5e 01 00 00 3d e0 00 00
[ 41.433405] EIP: igmp_group_
[ 41.433750] CR2: 0000000000000000
[ 41.433961] ---[ end trace 595db54cab84070c ]---
system then becomes unresponsive; no further interfaces can be created.
Changed in linux (Ubuntu): | |
status: | Incomplete → Confirmed |
tags: |
added: kernel-da-key removed: kernel-key |
Changed in linux (Ubuntu Artful): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Bionic): | |
status: | Triaged → Fix Committed |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
tags: | added: bionic |
summary: |
- openvswitch: kernel opps destroying interfaces on i386 + openvswitch: kernel oops destroying interfaces on i386 |
Changed in linux (Ubuntu Bionic): | |
status: | Fix Committed → In Progress |
Changed in linux (Ubuntu Bionic): | |
assignee: | Joseph Salisbury (jsalisbury) → nobody |
Changed in linux (Ubuntu Cosmic): | |
assignee: | Joseph Salisbury (jsalisbury) → nobody |
Changed in linux (Ubuntu Artful): | |
assignee: | Joseph Salisbury (jsalisbury) → nobody |
Changed in linux (Ubuntu): | |
assignee: | Joseph Salisbury (jsalisbury) → nobody |
description: | updated |
tags: | added: cscc |
Only seen on i386; all other archs pass OK.