argobots
argobots copied to clipboard
dump of ULTs stacks only works one time for the same execution context
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 !
PR-394 should fix.
This has been fixed with the PR #397 . @yfguo , please could you close this ticket.