rendered paste bodycommit 2f4d5ff43a750db73e13b636b691c3e800375a37Author: Dave Goodell <goodell@mcs.anl.gov>Date: Tue Feb 23 12:26:16 2010 -0600 Add a sanity check for unexpected PMI commands. This was partly masking problems upon pmi_proxy failure. Reviewed by balaji@.--- src/pm/hydra/pm/pmiserv/pmi_common.h | 2 ++ src/pm/hydra/pm/pmiserv/pmiserv_cb.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletions(-)diff --git a/src/pm/hydra/pm/pmiserv/pmi_common.h b/src/pm/hydra/pm/pmiserv/pmi_common.hindex 5f413bd..fda1a03 100644--- a/src/pm/hydra/pm/pmiserv/pmi_common.h+++ b/src/pm/hydra/pm/pmiserv/pmi_common.h@@ -30,6 +30,8 @@ struct HYD_pmcd_pmi_kvs { /* The set of commands supported */ enum HYD_pmcd_pmi_cmd {+ INVALID_PMI_CMD = 0, /* for sanity testing */+ /* UI to proxy commands */ PROC_INFO, KILL_JOB,diff --git a/src/pm/hydra/pm/pmiserv/pmiserv_cb.c b/src/pm/hydra/pm/pmiserv/pmiserv_cb.cindex 92adaa0..2d0d2d1 100644--- a/src/pm/hydra/pm/pmiserv/pmiserv_cb.c+++ b/src/pm/hydra/pm/pmiserv/pmiserv_cb.c@@ -176,7 +176,7 @@ static HYD_status handle_exit_status(int fd, struct HYD_proxy *proxy) static HYD_status control_cb(int fd, HYD_event_t events, void *userp) { int count;- enum HYD_pmcd_pmi_cmd cmd;+ enum HYD_pmcd_pmi_cmd cmd = INVALID_PMI_CMD; struct HYD_pmcd_pmi_cmd_hdr hdr; struct HYD_proxy *proxy; char *buf;@@ -214,6 +214,9 @@ static HYD_status control_cb(int fd, HYD_event_t events, void *userp) HYDU_ERR_POP(status, "unable to process PMI command\n"); } }+ else {+ HYDU_ERR_SETANDJUMP1(status, HYD_INTERNAL_ERROR, "unhandled PMI command=%d\n", cmd);+ } fn_exit: HYDU_FUNC_EXIT();