From 607cf43ebe6147e1c032f3a14127ab4c343101c3 Mon Sep 17 00:00:00 2001 From: "David J. Bremer" <dbremer@llnl.gov> Date: Fri, 28 Aug 2009 01:13:39 +0000 Subject: [PATCH] If a message comes in twice saying a given task exited, print an error instead of doing an assertion failure. --- src/srun/task_state.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/srun/task_state.c b/src/srun/task_state.c index d2a1dd9d8fc..db7f622d622 100644 --- a/src/srun/task_state.c +++ b/src/srun/task_state.c @@ -124,15 +124,23 @@ void task_state_update (task_state_t ts, int taskid, task_state_type_t t) bit_set (ts->start_failed, taskid); break; case TS_NORMAL_EXIT: - bit_set (ts->normal_exit, taskid); bit_clear (ts->running, taskid); - ts->n_exited++; + if (bit_test(ts->normal_exit, taskid)) { + error("Task %d reported exit for a second time."); + } else { + bit_set (ts->normal_exit, taskid); + ts->n_exited++; + } break; case TS_ABNORMAL_EXIT: bit_clear (ts->running, taskid); - bit_set (ts->abnormal_exit, taskid); - ts->n_exited++; - ts->n_abnormal++; + if (bit_test(ts->abnormal_exit, taskid)) { + error("Task %d reported exit for a second time."); + } else { + bit_set (ts->abnormal_exit, taskid); + ts->n_exited++; + ts->n_abnormal++; + } break; } -- GitLab