id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 13043,Serialized MPI doesn't properly handle cancellation of a request,Mike Willaims ,Matthias Troyer,"Hi - Think I've found a bug - If you try version A with mpiexec -n 2 then you get a clean exit - if you try version B, it hangs indefinitely. request::handle_serialized_irecv isn't handling cancellation. This is bothersome when you have to MPI_comm_disconnect from things. I can workaround by wrapping the transmission but that's not optimal. Please advise if you need more info, I'm using MSMPI and MSVC. Had previously posted this on Stack Overflow who thought it was a bug. Thanks for the library and look forward to hearing from you all soon. {{{ #include ""boost/mpi.hpp"" #include ""mpi.h"" #include #include ""boost/serialization/list.hpp"" int main() { MPI_Init(NULL, NULL); MPI_Comm regional; MPI_Comm_dup(MPI_COMM_WORLD, ®ional); boost::mpi::communicator comm = boost::mpi::communicator(regional, boost::mpi::comm_attach); if (comm.rank() == 1) { //VERSION A: std::list q; boost::mpi::request z = comm.irecv>(1, 0, q); z.cancel(); z.wait(); //VERSION B: // int q; // boost::mpi::request z = comm.irecv(1, 0, q); // z.cancel(); // z.wait(); } MPI_Comm_disconnect(®ional); MPI_Finalize(); return 0; } }}}",Bugs,new,To Be Determined,mpi,Boost 1.62.0,Problem,,,