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:10 +0100
commit15e4ee61acc619a861473050cd9f141b8e10babd (patch)
tree55edcc1cfca4d413b0e10ce2e1ac76762dfbbc5b
parentb9989e2c24d9275296a5897e244f86a580d09ec2 (diff)
downloadopenvswitch-15e4ee61acc619a861473050cd9f141b8e10babd.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 985696cc0..07b1c8e3d 100644
--- a/ofproto/bond.c
+++ b/ofproto/bond.c
@@ -887,7 +887,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: