Hi vpp-team, I'm new to VPP and I'm trying to run Redis 6.0.18 in VCL with LD_PRELOAD using VPP 22.10 and VPP 23.02. I found that assert fails frequently in VPP 23.02, and after checking, I found that the assert fails in the session_get function in vnet/session/session.h. The cause was an invalid session_id with a value of -1 (or ~0).
This function is called by the session_half_open_migrate_notify function in vnet/session/session.c, which is called by ct_accept_one in vnet/session/application_local.c. Function ct_accept_one is called because of an accept RPC request handled by the session_event_dispatch_ctrl function from the ct_connect function in vnet/session/application_local.c. Function ct_connect allocates and initializes a half-open transport object. However, its c_s_index value is -1 (or ~0), i.e., no session is allocated. allocating a session is implemented by calling session_alloc_for_half_open in the session_open_vc function of ct_connect (located in vnet/session/session.c). Therefore, I think the assertion failure is a case that ct_accept_one function accesses half-open tc without a session being allocated. I found that this problem does not exist on VPP 22.10. I checked the patches between 22.10 and 23.02 and found “session: move connects to first worker (https://gerrit.fd.io/r/c/vpp/+/35713)” that might be related to this issue, but I can't give a definite statement and I don’t know how fix it. I would be very grateful if you could address this issue. Thanks,
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22720): https://lists.fd.io/g/vpp-dev/message/22720 Mute This Topic: https://lists.fd.io/mt/97707720/21656 Mute #vnet:https://lists.fd.io/g/vpp-dev/mutehashtag/vnet Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-