Hi,

We are seeing a VPP crash (ASSERT) with following stack trace, when we try to 
create a DPO from within a VPP worker.
The below crash clear shows that DPO creation is restricted only to the main 
thread, since the ASSERT is making sure that the thread id is 0.

*  Backtrace of "Thread workers 1" (0xd11ca700)
*      Frame 00: /lib64/libc.so.6(gsignal+0x10b) [0x7f3b860e1feb]
*      Frame 01: /lib64/libc.so.6(abort+0x12b) [0x7f3b860cc5c1]
*      Frame 02: /usr/bin/vpp() [0x407e83]
*      Frame 03: 
/lib64/libvlib.so.18.10(vlib_worker_thread_barrier_sync_int+0x2c8) 
[0x7f3b877d6298]
*      Frame 04: /lib64/libvnet.so.18.10(dpo_stack+0x3fe) [0x7f3b881176be]
*      Frame 05: /lib64/libvnet.so.18.10(+0x5134ad) [0x7f3b8811a4ad]
*      Frame 06: /lib64/libvnet.so.18.10(load_balance_multipath_update+0xe8) 
[0x7f3b8811cb48]
*      Frame 07: /lib64/libvnet.so.18.10(fib_entry_src_mk_lb+0x13e) 
[0x7f3b880ff4ee]
*      Frame 08: /lib64/libvnet.so.18.10(fib_entry_src_action_install+0xc5) 
[0x7f3b880ff7d5]
*      Frame 09: /lib64/libvnet.so.18.10(fib_entry_create_special+0x39) 
[0x7f3b880fd129]
*      Frame 10: /lib64/libvnet.so.18.10(fib_table_entry_special_dpo_add+0xd5) 
[0x7f3b880f4215]

void
vlib_worker_thread_barrier_sync_int (vlib_main_t * vm)
{

ASSERT (vlib_get_thread_index () == 0);  <<<<< Crash is happening here
}
So, now the question is:
Can't we create any DPO from a worker thread ?
If not, is there any work around to do this.

Please let us know any inputs on this.

--
Thanks & Regards,
Murthy
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#14994): https://lists.fd.io/g/vpp-dev/message/14994
Mute This Topic: https://lists.fd.io/mt/69328025/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to