[ovs-dev] [PATCH] ofproto: Fix OVS crash when reverting old flows in bundle commit

Ben Pfaff blp at ovn.org
Mon Jun 18 19:50:09 UTC 2018


On Sun, Jun 17, 2018 at 05:20:30AM +0530, Vishal Deep Ajmera wrote:
> During bundle commit flows which are added in bundle are applied
> to ofproto in-order. In case if a flow cannot be added (e.g. flow
> action is go-to group id which does not exist), OVS tries to
> revert back all previous flows which were successfully applied
> from the same bundle. This is possible since OVS maintains list
> of old flows which were replaced by flows from the bundle.
> 
> While reinserting old flows ovs asserts due to check on rule
> state != RULE_INITIALIZED.  This will work only for new flows, but
> for old flow the rule state will be RULE_REMOVED. This is causing
> an assert and OVS crash.
> 
> The ovs assert check should be modified to != RULE_INSERTED to prevent
> any existing rule being re-inserted and allow new rules and old rules
> (in case of revert) to get inserted.
> 
> Signed-off-by: Vishal Deep Ajmera <vishal.deep.ajmera at ericsson.com>

Thanks, applied to master, backported as far as branch-2.7.

I added the reproduction example to the commit message.


More information about the dev mailing list