From 62c761ec26b3cd56e4e1832513454e171652829d Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Fri, 2 Apr 2021 17:32:00 +0200 Subject: [PATCH] report the proper size on the receiver side, when its buffer was allocated too largely. I'm sure it used to be done properly ... --- src/smpi/mpi/smpi_request.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/smpi/mpi/smpi_request.cpp b/src/smpi/mpi/smpi_request.cpp index 18df5f8f9a..72e5cfa1a3 100644 --- a/src/smpi/mpi/smpi_request.cpp +++ b/src/smpi/mpi/smpi_request.cpp @@ -117,9 +117,13 @@ bool Request::match_common(MPI_Request req, MPI_Request sender, MPI_Request rece receiver->real_src_ = sender->src_; if (receiver->tag_ == MPI_ANY_TAG) receiver->real_tag_ = sender->tag_; - if (receiver->real_size_ < sender->real_size_ && ((receiver->flags_ & MPI_REQ_PROBE) == 0 )){ - XBT_DEBUG("Truncating message - should not happen: receiver size : %zu < sender size : %zu", receiver->real_size_, sender->real_size_); - receiver->truncated_ = true; + if ((receiver->flags_ & MPI_REQ_PROBE) == 0 ){ + if (receiver->real_size_ < sender->real_size_){ + XBT_DEBUG("Truncating message - should not happen: receiver size : %zu < sender size : %zu", receiver->real_size_, sender->real_size_); + receiver->truncated_ = true; + } else if (receiver->real_size_ > sender->real_size_){ + receiver->real_size_=sender->real_size_; + } } if (sender->detached_) receiver->detached_sender_ = sender; // tie the sender to the receiver, as it is detached and has to be freed in -- 2.20.1