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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to