Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Do not initialize the App's memory introspection if it's not needed
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 20 Mar 2023 22:27:39 +0000 (23:27 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 20 Mar 2023 23:35:08 +0000 (00:35 +0100)
commita8117ad0492ce7b4a42d963915fdd05e6d6a7a9f
tree2c2b236da84ff77151695bf78f792099cd75f9d7
parent10c3d34b00fc9a569ef0e281b0d955610476a0be
Do not initialize the App's memory introspection if it's not needed

Reforks are still not activated in this code, as the DFS constructor
pretends that it needs memory introspection when it does not. The
version activating reforks is currently commented here, if you want to
play with it.

Things seem more or less working with this change. Known issues:
 - liveness checking is killed by a out-of-bounds access to a vector
   while handling the property automaton. This is the case even when
   reforks are not activated, making this change improper for the
   master branch.
 - The checker is not very good at killing the application in refork
   mode, and many processes remain around until after they are
   abandoned by their checker.
   I'm not sure of whether they only consume memory or whether they
   also burn the CPU in an active loop. In both cases, this is ...
   suboptimal.
   This point is OK when not activating reforks.
 - valgrind reports some sort of double free on the libevent's events.
   I fail to get the std::unique_ptr thing right. See next commit.
12 files changed:
src/mc/VisitedState.cpp
src/mc/api/RemoteApp.cpp
src/mc/api/RemoteApp.hpp
src/mc/api/State.cpp
src/mc/explo/DFSExplorer.cpp
src/mc/explo/Exploration.cpp
src/mc/explo/LivenessChecker.cpp
src/mc/remote/AppSide.cpp
src/mc/remote/AppSide.hpp
src/mc/remote/CheckerSide.cpp
src/mc/remote/CheckerSide.hpp
src/mc/remote/mc_protocol.h