Fix divide by zero error in calculate_num_nodes_up_to_level using MPI_Bcast with 2 tasks #11120
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Clang static analysis reported a possible zerodivide exception at ompi/mca/coll/base/coll_base_topo.c:62 (calculate_num_nodes_up_to_level)
I was able to get this exception with the program
#include <mpi.h>
char buff[4096];
int main(int argc, char *argv[]) {
MPI_Init(&argc, &argv);
MPI_Bcast(buff, sizeof buff, MPI_CHAR, 0, MPI_COMM_WORLD);
MPI_Finalize();
}
Using the command
mpirun -n 2 --mca coll_adapt_bcast_algorithm 6 --mca coll_adapt_priority 99 bcast
The calculate_num_nodes_up_to_level function is called from ompi_coll_base_topo_build_tree. The exception occurs because fanout is set to one in this case.
This is a cherry pick of #11103 from the main branch
Signed-off-by: David Wootton [email protected]
(cherry picked from commit a74927f)