Bug 1215

Summary: Hotplug sigbus handler is using signal unsafe calls
Product: DPDK Reporter: Stephen Hemminger (stephen)
Component: coreAssignee: dev
Status: UNCONFIRMED ---    
Severity: minor    
Priority: Normal    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   

Description Stephen Hemminger 2023-04-13 04:34:36 CEST
The sigbus_handler() in lib/eal/linux/eal_dev.c is using many direct library calls and DPDK API's that are not safe to be used in a signal handler.
Unsafe routines include RTE_LOG() uses sprintf and syslog. etc..

It is also possible that failure_handle_lock could deadlock if called during a change of state by other thread.
The safer way would be to use signalfd() and a monitoring thread.

Handling signals in Linux and BSD is hard.