summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangchang <yangchang@chinatelecom.cn>2022-10-14 15:29:36 +0800
committerIlya Maximets <i.maximets@ovn.org>2022-11-02 19:21:22 +0100
commit7c9bdf0ba5c5ce13ceb8889bccb22d7841a648e3 (patch)
tree40003acc0a2d58a5d1e816b22dddf94b6895c64f
parent8163066d4073f0dec119c75706917e2f8667b25e (diff)
downloadopenvswitch-7c9bdf0ba5c5ce13ceb8889bccb22d7841a648e3.tar.gz
bond: Fix crash while logging not yet enabled member.
The log should be printed with the member name, not the active member name, and the active member does not judge whether it is NULL. If null, OVS will crash with the following backtrace: (gdb) bt 0 bond_check_admissibility (ofproto/bond.c:877) 1 is_admissible (ofproto/ofproto-dpif-xlate.c:2574) 2 xlate_normal (ofproto/ofproto-dpif-xlate.c:3027) 3 xlate_output_action (ofproto/ofproto-dpif-xlate.c:5284) 4 do_xlate_actions (ofproto/ofproto-dpif-xlate.c:6960) 5 xlate_actions (ofproto/ofproto-dpif-xlate.c:7924) 6 upcall_xlate (ofproto/ofproto-dpif-upcall.c:1237) 7 process_upcall (ofproto/ofproto-dpif-upcall.c:1456) 8 upcall_cb (ofproto/ofproto-dpif-upcall.c:1358) 9 dp_netdev_upcall (lib/dpif-netdev.c:7793) 10 handle_packet_upcall (lib/dpif-netdev.c:8255) 11 fast_path_processing (lib/dpif-netdev.c:8374) 12 dp_netdev_input__ (lib/dpif-netdev.c:8463) 13 dp_netdev_input (lib/dpif-netdev.c:8501) 14 dp_netdev_process_rxq_port (lib/dpif-netdev.c:5337) 15 pmd_thread_main (lib/dpif-netdev.c:6944) 16 ovsthread_wrapper (lib/ovs-thread.c:422) 17 ?? (/lib64/libpthread.so.0) 18 clone (/lib64/libc.so.6) Fixes: 423416f58749 ("lacp: report desync in ovs threads enabling slave") Signed-off-by: yangchang <yangchang@chinatelecom.cn> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
-rw-r--r--ofproto/bond.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ofproto/bond.c b/ofproto/bond.c
index 89d901303..2e8a94b80 100644
--- a/ofproto/bond.c
+++ b/ofproto/bond.c
@@ -835,7 +835,7 @@ bond_check_admissibility(struct bond *bond, const void *slave_,
verdict = (slave->enabled || slave->may_enable) ? BV_ACCEPT : BV_DROP;
if (!slave->enabled && slave->may_enable) {
VLOG_DBG_RL(&rl, "bond %s: slave %s: main thread not yet enabled slave",
- bond->name, bond->active_slave->name);
+ bond->name, slave->name);
}
goto out;
case LACP_CONFIGURED: