Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 1512575

Summary: OVS: Tunnel driver may be unloaded while tunnel in use by OVS
Product: Red Hat Enterprise Linux 7 Reporter: Eric Garver <egarver>
Component: openvswitchAssignee: Eric Garver <egarver>
Status: CLOSED CANTFIX QA Contact: Junhan <juyan>
Severity: high Docs Contact:
Priority: high    
Version: 7.4CC: atragler, fleitner, jbenc, ovs-team, qding
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-04 16:28:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Eric Garver 2017-11-13 15:00:41 UTC
As reported upstream [0] the tunnel driver (geneve, vxlan, gre) may be unloaded while OVS (>=2.8) is using the tunnel and the tunnel interfaces are deleted. In <2.8 this was not possible because the tunnel driver would be marked "in-use by" the associated vport-* module. That vport module would also have a non zero reference count due to the compat interface bumping the reference count in ovs_vport_add(). With 2.8, the tunnel is created via the rtnetlink interface and the vport-{geneve,vxlan,gre} modules are not used as such their reference count is zero. Now the geneve driver can be unloaded because any driver using it (vport-geneve) can also be unloaded.

Unfortunately during iptables upgrade, conntrack and all modules dependent upon it (openvswitch, geneve, etc) are also unloaded. In <2.8 this would have been blocked due to the above mentioned reference counts.

As noted in [0] this can be seen during the RHEL-7.3 to RHEL-7.4 upgrade.

[0] https://mail.openvswitch.org/pipermail/ovs-dev/2017-November/340809.html


Reproduce steps:
  1) Create OVS geneve tunnel
  2) modprobe -r vport-geneve geneve
  3) geneve interface gone

Comment 3 Eric Garver 2017-12-04 16:28:24 UTC
This can't be fixed in openvswitch as other packages are causing the modules to be unloaded. Manually unloading a kernel modules does indeed destroy tunnel/interfaces, but this expected behavior.

As such I created the following BZs:

  - bug 1520532
  - bug 1520534