Make coverity happy for 4.0#623
Conversation
b6c8edf to
a1e80e5
Compare
a1e80e5 to
635cdc5
Compare
635cdc5 to
538dea3
Compare
|
let's keep it as a draft for now, there are some tests failing and I can't yet figure out why. |
|
Snapshot of investigation: During parsec_redistribute_dtd_New we create an we later dereference null+8 as an input to parsec_datatype_free, which may also explain why we would see these weird MPI_TYPE_FREE errors in some cases recently. The same code for |
|
For posterity, a piece of discussion from Slack about the dtd_arena_create and our plan to address the problem
|
…ena_datatypes in a consistent order (ICLDisco/parsec#623)
193050d to
45d6c62
Compare
|
CI failure is due to #641 this is ready |
…ena_datatypes in a consistent order (ICLDisco/parsec#623)
12fdcd4 to
358aad4
Compare
Don't generate the args code if there are no successors compute the key using 64 bits arithmetic ensure vpid is within expected range Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
This is only used by the DTD interface, but it needs to be completely initialized in all cases. Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
Signed-off-by: Aurelien Bouteiller <bouteill@icl.utk.edu>
and avoid memory leakage in certain cases
adt construct form
contructor/destructor naming conventions
Fix the arena datatype lifecycle in PTG examples, wrappers, and tests. Generated PTG taskpools embed their arena datatype objects, but user code is responsible for initializing the opaque datatype assigned to those arenas and for releasing it before freeing the taskpool. Update examples and helper wrappers to initialize the embedded taskpool arena directly with parsec_arena_datatype_set_type() or the matrix ADT helpers, instead of copying temporary arena datatype objects into the taskpool. Add matching taskpool-specific free helpers where needed so tests can destroy the arena datatype and then free the generated taskpool. Also free generated taskpools in parser/runtime tests that previously only created them, and remove a redundant DTD arena datatype reinitialization after parsec_matrix_adt_new_rect() already created the requested type. While touching the generated PTG release path, scope the dynamic termination ready-list loop variable locally to the emitted loop. Signed-off-by: George Bosilca <gbosilca@nvidia.com>
Pair several internal allocations with their matching teardown paths exposed by the debug leak sweep. Release temporary MCA component-selection strings, free selected device component arrays during device shutdown, and make MCA parameter teardown release source file metadata regardless of where the active value came from. Clean up scheduler-owned queues consistently by removing the duplicate LTQ system-queue allocation and releasing LHQ hierarchical queue metadata and shared system queue state during scheduler removal. Also release the map-operator task-class array from the taskpool destructor. Signed-off-by: George Bosilca <gbosilca@nvidia.com>
Fix test-side ownership leaks reported during the debug leak sweep. Destroy matrix data and descriptors with the matching PaRSEC teardown APIs, free temporary result buffers and helper allocations, release DTD tile handles and task classes, and clean up custom test distribution state before process exit. Update class and runtime tests to release barriers, hwloc state, list/lifo objects, timing buffers, and thread arrays. Keep the remaining DTD data_flush_all lifetime findings documented in the leak-sweep TODO for later investigation. Signed-off-by: George Bosilca <gbosilca@nvidia.com>
358aad4 to
c07129a
Compare
Correct spelling mistakes across comments, documentation strings, debug messages, and test diagnostics. This keeps generated help text and developer-facing messages consistent without changing behavior. Signed-off-by: George Bosilca <gbosilca@nvidia.com>
devreal
left a comment
There was a problem hiding this comment.
LGTM but there are some open points of discussion.
Coverity identified 692 legitimate issues. Luckily for us most of them are in the generated code and have relatively simple solutions. This PR is a placeholder to address all of the issues that can be addressed in a reasonable time frame.