Blob Blame History Raw
From ac3a1c6b5e29af2de1ae0e87fd186430e8f27229 Mon Sep 17 00:00:00 2001
From: Numan Siddique <nusiddiq@redhat.com>
Date: Sun, 8 Sep 2019 19:29:29 +0530
Subject: [PATCH 08/12] Fix the segfault seen in ovn-controller when running
 tests

The test case - "116: ovn -- 2 HVs, 2 lports/HV, localnet ports, DVR N-S Ping"
is failing with the segfault in ovn-controller occationally.

This patch fixes it.

backtrace
------
Program terminated with signal SIGSEGV, Segmentation fault.
0x0000000000422414 in put_remote_port_redirect_bridged (...)
    at /usr/include/bits/byteswap.h:52
52	  return __builtin_bswap32 (__bsx);
[Current thread is 1 (Thread 0x7f985fbe04c0 (LWP 18625))]
------

Fixes: 03493b33c073("OVN: Vlan backed DVR N-S, redirect packet via localnet port")
CC: Ankur Sharma <ankur.sharma@nutanix.com>
Acked-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Numan Siddique <nusiddiq@redhat.com>
---
 ovn/controller/physical.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/ovn/controller/physical.c b/ovn/controller/physical.c
index 9d553da9a..8f8a5ba27 100644
--- a/ovn/controller/physical.c
+++ b/ovn/controller/physical.c
@@ -280,6 +280,9 @@ put_remote_port_redirect_bridged(const struct
         const struct sbrec_port_binding *ls_localnet_port;
 
         ls_localnet_port = get_localnet_port(local_datapaths, ls_dp_key);
+        if (!ls_localnet_port) {
+            return;
+        }
 
         src_mac = ofpact_put_SET_ETH_SRC(ofpacts_p);
         src_mac->mac = binding_mac;
-- 
2.23.0