Bug 1640875

Summary: ofproto-dpif-xlate: Avoid deadlock on multicast snooping recursion.
Product: Red Hat OpenStack Reporter: Brendan Shephard <bshephar>
Component: openvswitchAssignee: Assaf Muller <amuller>
Status: CLOSED CURRENTRELEASE QA Contact: Eran Kuris <ekuris>
Severity: medium Docs Contact:
Priority: medium    
Version: 13.0 (Queens)CC: aguetta, amuller, apevec, chrisw, fleitner, jlibosva, rhos-maint
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1640930 1643065 (view as bug list) Environment:
Last Closed: 2020-02-25 14:25:17 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:
Embargoed:
Bug Depends On: 1643071    
Bug Blocks:    

Description Brendan Shephard 2018-10-19 03:36:19 UTC
Description of problem:
Issue: https://github.com/openvswitch/ovs-issues/issues/153
Copied from the github issue: https://github.com/openvswitch/ovs/commit/ed56f8bd6a668df3664f68b00c5396c268aa1821

Until now, OVS did multicast snooping outputs holding the read-lock on
the mcast_snooping object.  This could recurse via a patch port to try to
take the write-lock on the same object, which deadlocked.  This patch fixes
the problem, by releasing the read-lock before doing any outputs.

It would probably be better to use RCU for mcast_snooping.  That would be
a bigger patch and less suitable for backporting.

Version-Release number of selected component (if applicable):
2.9

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
Creating this BZ to address customer concern about upstream issue that has recently been patched. Looking to backport the fix into RHEL OvS release for OpenStack.

Comment 3 Flavio Leitner 2018-10-25 13:05:42 UTC
Looks like the patch is backported in upstream already, so I opened the RHEL bugs to track the backport. I am proposing for the next batch FDP:18.12.

2.10 https://bugzilla.redhat.com/show_bug.cgi?id=1643065
2.9 https://bugzilla.redhat.com/show_bug.cgi?id=1643071