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:18:41 +0100
commitdf90768de35f5844233e9ee489ca971bdcb9bfb3 (patch)
tree404c8ea24ca24ab99ba9cb84ee3741659d1a79f7
parent91932ecfc1f7634c3b2ab49b021645070f5fa60c (diff)
downloadopenvswitch-df90768de35f5844233e9ee489ca971bdcb9bfb3.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 e07d12e58..560380504 100644
--- a/ofproto/bond.c
+++ b/ofproto/bond.c
@@ -887,7 +887,7 @@ bond_check_admissibility(struct bond *bond, const void *member_,
if (!member->enabled && member->may_enable) {
VLOG_DBG_RL(&rl, "bond %s: member %s: "
"main thread has not yet enabled member",
- bond->name, bond->active_member->name);
+ bond->name, member->name);
}
goto out;
case LACP_CONFIGURED: