boostorg / boostorg/graph_parallel

Unhandled MPI_Requests generated by mpi_process_group constructor.

Open
#20 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
33
Forks
41
Avg merge
1d 11h
Merged PRs (30d)
1

Description

The `boost::graph::distributed::mpi_process_group` class spawns some non-blocking communication in its constructor, but the resulting requests are never handled. I have tracked this down to the `global_trigger_launcher`, which has the following comment:

```
// TBD: do not forget to cancel any outstanding Irecv when deleted,
// if we decide to use Irecv
```

It looks like this was never done, but the default build configuration uses Irecv. To replicate this bug, simply create an mpi_process_group with any constructor, do nothing with it, and let it go out of scope. You will need some way to interact with the MPI profiling interface to detect leaked requests, such as LLNL's mpileaks:

https://github.com/LLNL/mpileaks

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.