summaryrefslogtreecommitdiff
path: root/ofproto
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:16:10 +0100
commit46ab9d80c2ab8f13dfe2ba2a9700887cd4f7fc36 (patch)
tree5b37e574e14244eda08e17ad1eb1f5a83851d520 /ofproto
parenteb86c28ddcdb7922974def08749076c8bf2c5635 (diff)
downloadopenvswitch-46ab9d80c2ab8f13dfe2ba2a9700887cd4f7fc36.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>
Diffstat (limited to 'ofproto')
-rw-r--r--ofproto/bond.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ofproto/bond.c b/ofproto/bond.c
index 47630a6b0..cfdf44f85 100644
--- a/ofproto/bond.c
+++ b/ofproto/bond.c
@@ -897,7 +897,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: