Hi Anna,

are you calling vlib_process_signal_event() from worker threads? If so, you 
should probably use vlib_process_signal_event_mt() instead.
Otherwise can you share how you are calling vlib_process_signal_event()?

Best
ben

________________________________________
From: [email protected] <[email protected]> on behalf of Anna Neiman 
<[email protected]>
Sent: Monday, March 2, 2026 16:47
To: [email protected]
Subject: [vpp-dev] pool_is_free_index in timer_addhead - possible race 
condition ?

Hello vpp experts,

I have an issue ,  that in the function timer_addhead , on the call

new = pool_elt_at_index (pool, new_index);


The "new_index" is the free index of  the pool. It is reproducible once a week- 
-two weeks
I don't have the direct calls of the timer API in the proprietary code , only 
via  vlib_process_signal_event to the process node
What can be the reason of such behaviour ?

My suspicious is the race condition  -  I paid attention that 
vlib_process_t::stop_timer_handle is set from  vlib_process_signal_event and 
dispatch_suspended_process, so it can be in the different threads 
simultaneously.
Does it make sense ?

The vpp version is  24.10
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#26851): https://lists.fd.io/g/vpp-dev/message/26851
Mute This Topic: https://lists.fd.io/mt/118095789/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to