Skip to content

dump of ULTs stacks only works one time for the same execution context #393

@bfaccini

Description

@bfaccini

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 !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions