diff --git a/src/mpi/MpiWorld.cpp b/src/mpi/MpiWorld.cpp index eb06d5367..51350ad7c 100644 --- a/src/mpi/MpiWorld.cpp +++ b/src/mpi/MpiWorld.cpp @@ -607,7 +607,8 @@ void MpiWorld::doRecv(std::shared_ptr& m, assert(m->count() <= count); const std::string otherHost = getHostForRank(m->destination()); - bool isLocal = otherHost == thisHost; + bool isLocal = + getHostForRank(m->destination()) == getHostForRank(m->sender()); if (m->count() > 0) { if (isLocal) { diff --git a/src/planner/Planner.cpp b/src/planner/Planner.cpp index 9d5ddd22a..be3d4b383 100644 --- a/src/planner/Planner.cpp +++ b/src/planner/Planner.cpp @@ -290,7 +290,10 @@ void Planner::setMessageResult(std::shared_ptr msg) // Release the slot only once if (!state.hostMap.contains(msg->executedhost())) { - SPDLOG_ERROR("Host Map does not contain: {}", msg->executedhost()); + SPDLOG_ERROR("Host Map does not contain: {}. We have:", msg->executedhost()); + for (auto [ip, host] : state.hostMap) { + SPDLOG_ERROR("{} ({}/{})", ip, host->usedslots(), host->slots()); + } } assert(state.hostMap.contains(msg->executedhost())); if (!state.appResults[appId].contains(msgId)) {