Trying to dump ULTs stacks by calling ABT_info_trigger_print_all_thread_stacks() in DAOS code, I have found that this can only be done one time in a same process/execution context.
The reason of such buggy behaviour is that, in ABTI_info_check_print_all_thread_stacks(), a NULL/0 test of the return value of the ABTD_atomic_fetch_sub_int() function, basically doing an atomic_fetch_sub(), applied to the print_stack_barrier atomic variable where the number of previously "parked" XStreams (to stop all ABT-related activity during execution of all ULTs stacks dump in the context of an elected “master” XStream) is used to detect when the print_stack_flag can be reset to PRINT_STACK_FLAG_UNSET to allow for a next dump to be started.
The problem is that 1 should be tested instead of 0, since the atomic_fetch_sub() returned value is the one BEFORE the sub not after !