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