From c6b15af33f9df989af4a8fd4d94b14fddfd7b91b Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 29 Nov 2017 16:29:29 +0100 Subject: [PATCH] fix #248: Kill of finished MSG processes leads to segfault --- ChangeLog | 3 +++ src/simix/ActorImpl.cpp | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index eb74d9a9a9..73d46efe82 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,9 @@ SimGrid (3.18) NOT RELEASED YET (target: December 24 2017) TRACE - Remove viva specific tracing as the tool is no longer maintained + Fixed bugs: + - #248: Kill of finished MSG processes leads to segfault + SimGrid (3.17) Released October 8 2017 The Drained Leaks release: (almost) no known leaks despite the tests. diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index ed204c90b5..29ca5bfda2 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -464,6 +464,12 @@ void SIMIX_process_runall() */ void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer) { + if (process->finished) { + XBT_DEBUG("Ignoring request to kill process %s@%s that is already dead", process->getCname(), + process->host->getCname()); + return; + } + XBT_DEBUG("Killing process %s@%s", process->getCname(), process->host->getCname()); process->context->iwannadie = 1; -- 2.20.1