ovn: Fix check on existing encap row.
authorRussell Bryant <rbryant@redhat.com>
Tue, 27 Oct 2015 09:01:28 +0000 (18:01 +0900)
committerRussell Bryant <rbryant@redhat.com>
Tue, 3 Nov 2015 21:18:59 +0000 (16:18 -0500)
This code does some checking to validate the existing encaps for a
chassis to see if they need to be updated.  This typo resulted in
ovn-controller re-creating its encap(s) every time this code ran, making
ovn-controller and ovsdb-server eat up a CPU in my testing.

Signed-off-by: Russell Bryant <rbryant@redhat.com>
Acked-by: Ben Pfaff <blp@nicira.com>
ovn/controller/chassis.c

index 6617bf3..f0dfaa5 100644 (file)
@@ -95,7 +95,7 @@ chassis_run(struct controller_ctx *ctx, const char *chassis_id)
         bool same = true;
         for (int i = 0; i < chassis_rec->n_encaps; i++) {
             cur_tunnels |= get_tunnel_type(chassis_rec->encaps[i]->type);
-            same = same && strcmp(chassis_rec->encaps[i]->ip, encap_ip);
+            same = same && !strcmp(chassis_rec->encaps[i]->ip, encap_ip);
         }
         same = same && req_tunnels == cur_tunnels;