Hi folks,

I am running into a problem with the ibm test 'group'. I will try to explain what I think is going on, but I do not really understand the group code so please forgive me if it is wrong...

The test creates a group based on MPI_COMM_WORLD (group1), and a group that has half the procs in group1 (newgroup). Next, all the processes do:

MPI_Group_intersection(newgroup,group1,&group2)

ompi_group_intersection figures out what procs are needed for group2, then calls

ompi_group_incl, passing 'newgroup' and '&group2'

This then calls (since I am not using sparse groups) ompi_group_incl_plist

However, ompi_group_plist assumes that the current process is a member of the passed group ('newgroup'). Thus when it calls ompi_group_peer_lookup on 'newgroup', half of the processes get garbage back since they are not in 'newgroup'. In most cases, memory is initialized to \0 and things fall through, but we get intermittent segfaults in optimized builds.

In r I have put in a correction to a error check which should help show this problem.

Thanks,

Tim

Reply via email to