diff options
author | yangchang <yangchang@chinatelecom.cn> | 2022-10-14 15:29:36 +0800 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2022-11-02 19:21:10 +0100 |
commit | 15e4ee61acc619a861473050cd9f141b8e10babd (patch) | |
tree | 55edcc1cfca4d413b0e10ce2e1ac76762dfbbc5b | |
parent | b9989e2c24d9275296a5897e244f86a580d09ec2 (diff) | |
download | openvswitch-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.c | 2 |
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: |