diff --git a/fairmq/shmem/Monitor.cxx b/fairmq/shmem/Monitor.cxx index 910a5f83..3c347c32 100644 --- a/fairmq/shmem/Monitor.cxx +++ b/fairmq/shmem/Monitor.cxx @@ -596,8 +596,14 @@ std::vector> Monitor::Cleanup(const ShmId& shmId, b Uint16SegmentInfoHashMap* segmentInfos = managementSegment.find(bipc::unique_instance).first; - for (const auto& s : *segmentInfos) { - result.emplace_back(RunRemoval(Monitor::RemoveObject, "fmq_" + shmId.shmId + "_m_" + to_string(s.first), verbose)); + if (segmentInfos) { + for (const auto& s : *segmentInfos) { + result.emplace_back(RunRemoval(Monitor::RemoveObject, "fmq_" + shmId.shmId + "_m_" + to_string(s.first), verbose)); + } + } else { + if (verbose) { + LOG(info) << "Cannot find information about managed segments"; + } } result.emplace_back(RunRemoval(Monitor::RemoveObject, managementSegmentName.c_str(), verbose));