Skip to content

Commit

Permalink
ofproto: Remove groups that nested actions reference when removing rule.
Browse files Browse the repository at this point in the history
topology:
                      +----------------+
            +-------->| SDN Controller |<--------------+
            |         +----------------+               |
            |	                                       |
+-----------|-----+			   +-----------|-----+
| +-----+   |     |                        | +-----+   |     |
| | VM1 |   |     |                        | | VM2 |   |     |
| +-----+   |     |                        | +-----+   |     |
|    ^      V     |                        |    ^      V     |
|    |   +-----+  |                        |    |   +-----+  |
|    +-> | OVS |  |                        |    +-> | OVS |  |
|        +-----+  |                        |        +-----+  |
|           ^     |                        |           ^     |
+-----------|-----+                        +-----------|-----+
	    | Nic                                   Nic|
            +------------------------------------------+

We start the communication between VM1 and VM2, for example, ICMP.
At the meantime, disconnect OVS and SDN controller, and reconnect
them again, the process ovs-vswitchd crashes.

backtrace:
0  0x00007f658082ffe4 in cls_rule_make_invisible_in_version ()
1  0x00007f65807f6bb3 in delete_flows_start__ ()
2  0x00007f65807f7ee9 in ofproto_group_mod_start ()
3  0x00007f65807fa07b in handle_openflow ()
4  0x00007f658082119b in connmgr_run ()
5  0x00007f65807f3ba6 in ofproto_run ()
6  0x00007f65807e101c in bridge_run__ ()
7  0x00007f65807e715d in bridge_run ()
8  0x00007f658065784d in main ()

Signed-off-by: Binbin Xu <xu.binbin1@zte.com.cn>
Signed-off-by: Ben Pfaff <blp@ovn.org>
  • Loading branch information
pinasterxu authored and blp committed Sep 20, 2016
1 parent 9ef3a41 commit 8483173
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion ofproto/ofproto.c 100644 → 100755
Expand Up @@ -8436,7 +8436,7 @@ ofproto_rule_remove__(struct ofproto *ofproto, struct rule *rule)
if (actions->has_groups) {
const struct ofpact_group *a;

OFPACT_FOR_EACH_TYPE (a, GROUP, actions->ofpacts,
OFPACT_FOR_EACH_TYPE_FLATTENED(a, GROUP, actions->ofpacts,
actions->ofpacts_len) {
struct ofgroup *group;

Expand Down

0 comments on commit 8483173

Please sign in to comment.