-
Notifications
You must be signed in to change notification settings - Fork 934
ompi_comm_enable: always OBJ_RELEASE new_comm if an error occurs #459
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ompi_comm_enable: always OBJ_RELEASE new_comm if an error occurs #459
Conversation
and simplify the error handling in topo/base upon ompi_comm_enable invokation
|
@bosilca could you please review this ? |
|
|
Refer to this link for build results (access rights to CI server needed): |
|
You cannot rely on the OBJ_RELEASE to correctly destroy the communicator for 2 reasons:
Moreover, I don't even see the OBJ_RELEASE in this patch, but the call to ompi_communicator_free went missing. What was the original issue you were trying to fix? |
|
the original issue, is that
at least in mca_topo_base_cart_create, reference_count of new_comm is always 1 back to mca_topo_base_cart_create, if ompi_comm_enable fails, new_comm might have been released or not ... so invoking ompi_comm_free on new_comm might crash. communicator destructor does OBJ_RELEASE comm->c_topo if it is not NULL |
|
Where are we with this PR? Should it be closed without merge? |
|
@bosilca @ggouaillardet How's it going on this PR? :) |
|
Can one of the admins verify this patch? |
|
I looked at the topo_base_cart_create.c, and it seems that this patch introduced some memory leaks. To be more precise with this patch the newly created communicator (new_comm) and the newly created cart and topo are not released. |
|
@ggouaillardet Can you address @bosilca's comments (#459 (comment))? |
…ob_tcp_finalize Revert "oob/tcp: fix a race condition when finalizing the oob/tcp com…
|
@ggouaillardet Can we bring this to conclusion? Been hanging around for a long time. |
|
let s close this PR |
and simplify the error handling in topo/base upon ompi_comm_enable
invokation