Skip to content

Conversation

@hjelmn
Copy link
Member

@hjelmn hjelmn commented Mar 9, 2015

There were a number of bugs in the framework/variable code that
affected deregistration:

  • Frameworks could be erroneously closed if seperately registered and
    opened then subsequently closed. This was a bug in the original
    design which only reference counted opens but not
    registrations. This would cause undefined behavior if
    MPI_T_finalize actually calls ompi_info_close_components as
    intended. Now both registrations and opens are reference counted
    and frameworks/components are not torn down until the matching
    number of close calls have been made.
  • group_find_by_name did not pass the invalidok flags down
    to mca_base_var_group_get_internal correctly.
  • Group deregistration caused the group to be completely reset. This
    does not match the behavior required by MPI_T as it could reduce
    the number of variables/subgroups in a group.

This commit also updates MPI_T_finalize to call
ompi_info_close_components as originally intended.

Closes #374

Signed-off-by: Nathan Hjelm hjelmn@lanl.gov

There were a number of bugs in the framework/variable code that
affected deregistration:

 - Frameworks could be erroneously closed if seperately registered and
   opened then subsequently closed. This was a bug in the original
   design which only reference counted opens but not
   registrations. This would cause undefined behavior if
   MPI_T_finalize actually calls ompi_info_close_components as
   intended. Now both registrations and opens are reference counted
   and frameworks/components are not torn down until the matching
   number of close calls have been made.

 - group_find_by_name did not pass the invalidok flags down
   to mca_base_var_group_get_internal correctly.

 - Group deregistration caused the group to be completely reset. This
   does not match the behavior required by MPI_T as it could reduce
   the number of variables/subgroups in a group.

This commit also updates MPI_T_finalize to call
ompi_info_close_components as originally intended.

Closes open-mpi#374

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
@hjelmn
Copy link
Member Author

hjelmn commented Mar 9, 2015

@jsquyres Please take a look.

@mellanox-github
Copy link

Refer to this link for build results (access rights to CI server needed):
http://bgate.mellanox.com/jenkins/job/gh-ompi-master-pr/336/
Test PASSed.

hjelmn added a commit that referenced this pull request Mar 18, 2015
mca/base: fix bugs in framework deregistration/re-registration
@hjelmn hjelmn merged commit ccba8ce into open-mpi:master Mar 18, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MPI_T_finalize() gets SEGV when called

2 participants