From: Steven Luong Date: Mon, 4 Aug 2025 20:41:00 +0000 (-0700) Subject: session: session debug crashes with elog track X-Git-Tag: v26.02-rc0~124 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F18%2F43518%2F3;p=vpp.git session: session debug crashes with elog track session debug uses elog track in the the transport. However, not all transports initialize elog track. If they don't, session debug crashes. The fix is to use non elog track if elog track is not initialized in the transport. Type: fix Change-Id: I123f71b39a4262cd68e35634dd5c7ec0e7b88cb0 Signed-off-by: Steven Luong --- diff --git a/src/vnet/session/session_debug.h b/src/vnet/session/session_debug.h index d433ef47fb1..70909979a52 100644 --- a/src/vnet/session/session_debug.h +++ b/src/vnet/session/session_debug.h @@ -149,14 +149,16 @@ extern session_dbg_main_t session_dbg_main; #define SESSION_DBG(_fmt, _args...) clib_warning (_fmt, ##_args) -#define DEC_SESSION_ETD(_s, _e, _size) \ - struct \ - { \ - u32 data[_size]; \ - } * ed; \ - transport_connection_t *_tc = session_get_transport (_s); \ - ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, \ - _e, _tc->elog_track) +#define DEC_SESSION_ETD(_s, _e, _size) \ + struct \ + { \ + u32 data[_size]; \ + } *ed; \ + transport_connection_t *_tc = session_get_transport (_s); \ + if (_tc->elog_track.name == 0) \ + ed = ELOG_DATA (&vlib_global_main.elog_main, _e); \ + else \ + ed = ELOG_TRACK_DATA (&vlib_global_main.elog_main, _e, _tc->elog_track) #define DEC_SESSION_ED(_e, _size) \ struct \