From: Martin Quinson Date: Sun, 31 Jul 2022 09:56:56 +0000 (+0200) Subject: sanitize things around FINALIZE_REPLY despite my laziness as it seems to break on... X-Git-Tag: v3.32~108 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/9ec4c698631ec44c39b691c6eef8e847379e2e66 sanitize things around FINALIZE_REPLY despite my laziness as it seems to break on FreeBSD --- diff --git a/src/mc/ModelChecker.cpp b/src/mc/ModelChecker.cpp index 4c1415a35a..fe5d743d15 100644 --- a/src/mc/ModelChecker.cpp +++ b/src/mc/ModelChecker.cpp @@ -349,7 +349,11 @@ void ModelChecker::finalize_app(bool terminate_asap) xbt_assert(checker_side_.get_channel().send(m) == 0, "Could not ask the app to finalize on need"); s_mc_message_t answer; - xbt_assert(checker_side_.get_channel().receive(answer) != -1, "Could not receive answer to FINALIZE"); + ssize_t s = checker_side_.get_channel().receive(answer); + xbt_assert(s != -1, "Could not receive answer to FINALIZE"); + xbt_assert(s == sizeof(answer) && answer.type == MessageType::FINALIZE_REPLY, + "Received unexpected message %s (%i, size=%i) expected MessageType::FINALIZE_REPLY (%i, size=%i)", + to_c_str(answer.type), (int)answer.type, (int)s, (int)MessageType::FINALIZE_REPLY, (int)sizeof(answer)); } } // namespace simgrid::mc diff --git a/src/mc/remote/AppSide.cpp b/src/mc/remote/AppSide.cpp index eaf261bacc..ec9e43a6e3 100644 --- a/src/mc/remote/AppSide.cpp +++ b/src/mc/remote/AppSide.cpp @@ -136,9 +136,7 @@ void AppSide::handle_finalize(const s_mc_message_int_t* msg) const #endif } coverage_checkpoint(); - xbt_assert(channel_.send(MessageType::DEADLOCK_CHECK_REPLY) == - 0, // DEADLOCK_CHECK_REPLY because I'm too lazy to create another message type with no content (FIXME) - "Could not answer to FINALIZE"); + xbt_assert(channel_.send(MessageType::FINALIZE_REPLY) == 0, "Could not answer to FINALIZE"); std::fflush(stdout); if (terminate_asap) ::_Exit(0); diff --git a/src/mc/remote/mc_protocol.h b/src/mc/remote/mc_protocol.h index 6895fa0e54..bf08566eb0 100644 --- a/src/mc/remote/mc_protocol.h +++ b/src/mc/remote/mc_protocol.h @@ -25,7 +25,8 @@ namespace simgrid::mc { XBT_DECLARE_ENUM_CLASS(MessageType, NONE, INITIAL_ADDRESSES, CONTINUE, IGNORE_HEAP, UNIGNORE_HEAP, IGNORE_MEMORY, STACK_REGION, REGISTER_SYMBOL, DEADLOCK_CHECK, DEADLOCK_CHECK_REPLY, WAITING, SIMCALL_EXECUTE, - SIMCALL_EXECUTE_ANSWER, ASSERTION_FAILED, ACTORS_STATUS, ACTORS_STATUS_REPLY, FINALIZE); + SIMCALL_EXECUTE_ANSWER, ASSERTION_FAILED, ACTORS_STATUS, ACTORS_STATUS_REPLY, FINALIZE, + FINALIZE_REPLY); } // namespace simgrid::mc constexpr unsigned MC_MESSAGE_LENGTH = 512;