This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via ea817af419894afbea6a2442c21b0b962fe5f087 (commit) via 2edc1fd227fcc4aaa18d0c9be68486240ae446b2 (commit) via 9e3e62b32c17d53b00763da5ab2eee13fb15bf7f (commit) via 4f477f61893f3b5a5ff9cefa2f6b2c2a445b2f56 (commit) from 257969053c8c448211172e569c748bd9db4336c6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/ea817af419894afbea6a2442c21b0b962f... commit ea817af419894afbea6a2442c21b0b962fe5f087 Author: Ken Raffenetti <[email protected]> Date: Fri Jan 31 14:37:22 2014 -0600 check for correct errclass in unpub test Check that attempting to unpublish a service the nameserver does not know about returns MPI_ERR_SERVICE. See 10.4.4 in the MPI standard. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/test/mpi/errors/spawn/unpub.c b/test/mpi/errors/spawn/unpub.c index bd0c9b0..d770512 100644 --- a/test/mpi/errors/spawn/unpub.c +++ b/test/mpi/errors/spawn/unpub.c @@ -15,7 +15,7 @@ int main( int argc, char *argv[] ) { - int errs = 0; + int rc, errclass, errs = 0; char port_name[MPI_MAX_PORT_NAME], serv_name[256]; MTest_Init( &argc, &argv ); @@ -25,7 +25,10 @@ int main( int argc, char *argv[] ) MPI_Comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_RETURN ); - MPI_Unpublish_name( serv_name, MPI_INFO_NULL, port_name ); + rc = MPI_Unpublish_name( serv_name, MPI_INFO_NULL, port_name ); + MPI_Error_class(rc, &errclass); + if (errclass != MPI_ERR_SERVICE) + ++errs; MTest_Finalize( errs ); MPI_Finalize(); http://git.mpich.org/mpich.git/commitdiff/2edc1fd227fcc4aaa18d0c9be68486240a... commit 2edc1fd227fcc4aaa18d0c9be68486240ae446b2 Author: Ken Raffenetti <[email protected]> Date: Fri Jan 31 15:01:28 2014 -0600 corrects the MPI error class returned from MPI_Unpublish_name. The error class should be MPI_ERR_SERVICE, not MPI_ERR_NAME, as defined by the MPI-3 standard section 10.4.4. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/nameserv/pmi/pmi_nameserv.c b/src/nameserv/pmi/pmi_nameserv.c index 55181b6..152f56c 100644 --- a/src/nameserv/pmi/pmi_nameserv.c +++ b/src/nameserv/pmi/pmi_nameserv.c @@ -111,7 +111,7 @@ int MPID_NS_Unpublish( MPID_NS_Handle handle, const MPID_Info *info_ptr, #else rc = PMI_Unpublish_name( service_name ); #endif - MPIU_ERR_CHKANDJUMP1(rc, mpi_errno, MPI_ERR_NAME, "**namepubnotunpub", "**namepubnotunpub %s", service_name); + MPIU_ERR_CHKANDJUMP1(rc, mpi_errno, MPI_ERR_SERVICE, "**namepubnotunpub", "**namepubnotunpub %s", service_name); fn_fail: return mpi_errno; http://git.mpich.org/mpich.git/commitdiff/9e3e62b32c17d53b00763da5ab2eee13fb... commit 9e3e62b32c17d53b00763da5ab2eee13fb15bf7f Author: Ken Raffenetti <[email protected]> Date: Fri Jan 31 14:21:15 2014 -0600 error reporting corrections in pmi nameservice Improves error reporting in the pmi nameservice by checking return codes from the pmi server. Debug messages are also printed when enabled. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/pmi/simple/simple_pmi.c b/src/pmi/simple/simple_pmi.c index 18aa0ad..24daf96 100644 --- a/src/pmi/simple/simple_pmi.c +++ b/src/pmi/simple/simple_pmi.c @@ -451,11 +451,12 @@ int PMI_Publish_name( const char service_name[], const char port[] ) "cmd=publish_name service=%s port=%s\n", service_name, port ); err = GetResponse( cmd, "publish_result", 0 ); - /* FIXME: This should have used rc and msg */ if (err == PMI_SUCCESS) { - PMIU_getval( "info", buf, PMIU_MAXLINE ); - if ( strcmp(buf,"ok") != 0 ) { - PMIU_printf( 1, "publish failed; reason = %s\n", buf ); + PMIU_getval( "rc", buf, PMIU_MAXLINE ); + if ( strcmp(buf,"0") != 0 ) { + PMIU_getval( "msg", buf, PMIU_MAXLINE ); + PMIU_printf( PMI_debug, "publish failed; reason = %s\n", buf ); + return( PMI_FAIL ); } } @@ -479,13 +480,12 @@ int PMI_Unpublish_name( const char service_name[] ) service_name ); err = GetResponse( cmd, "unpublish_result", 0 ); if (err == PMI_SUCCESS) { - PMIU_getval( "info", buf, PMIU_MAXLINE ); - if ( strcmp(buf,"ok") != 0 ) { - /* FIXME: Do correct error reporting */ - /* - PMIU_printf( 1, "unpublish failed; reason = %s\n", buf ); - */ - return( PMI_FAIL ); + PMIU_getval( "rc", buf, PMIU_MAXLINE ); + if ( strcmp(buf,"0") != 0 ) { + PMIU_getval( "msg", buf, PMIU_MAXLINE ); + PMIU_printf( PMI_debug, "unpublish failed; reason = %s\n", buf ); + + return( PMI_FAIL ); } } } @@ -508,12 +508,11 @@ int PMI_Lookup_name( const char service_name[], char port[] ) service_name ); err = GetResponse( cmd, "lookup_result", 0 ); if (err == PMI_SUCCESS) { - PMIU_getval( "info", buf, PMIU_MAXLINE ); - if ( strcmp(buf,"ok") != 0 ) { - /* FIXME: Do correct error reporting */ - /**** - PMIU_printf( 1, "lookup failed; reason = %s\n", buf ); - ****/ + PMIU_getval( "rc", buf, PMIU_MAXLINE ); + if ( strcmp(buf,"0") != 0 ) { + PMIU_getval( "msg", buf, PMIU_MAXLINE ); + PMIU_printf( PMI_debug, "lookup failed; reason = %s\n", buf ); + return( PMI_FAIL ); } PMIU_getval( "port", port, MPI_MAX_PORT_NAME ); http://git.mpich.org/mpich.git/commitdiff/4f477f61893f3b5a5ff9cefa2f6b2c2a44... commit 4f477f61893f3b5a5ff9cefa2f6b2c2a445b2f56 Author: Ken Raffenetti <[email protected]> Date: Fri Jan 31 10:11:31 2014 -0600 fix for unpublish name behavior When MPI_Unpublish_name is called on the pmi nameserver before any services have been published, a segfault will occur. Add a check to determine if anything is published so we can exit early instead. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c b/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c index 02fcbcc..9cd1fa0 100644 --- a/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c +++ b/src/pm/hydra/pm/pmiserv/pmiserv_pmi.c @@ -165,6 +165,12 @@ HYD_status HYD_pmcd_pmi_unpublish(char *name, int *success) *success = 0; if (HYD_server_info.nameserver == NULL) { /* no external nameserver available */ + + if (!HYD_pmcd_pmi_publish_list) { + /* nothing is published yet */ + goto fn_exit; + } + if (!strcmp(HYD_pmcd_pmi_publish_list->name, name)) { publish = HYD_pmcd_pmi_publish_list; HYD_pmcd_pmi_publish_list = HYD_pmcd_pmi_publish_list->next; ----------------------------------------------------------------------- Summary of changes: src/nameserv/pmi/pmi_nameserv.c | 2 +- src/pm/hydra/pm/pmiserv/pmiserv_pmi.c | 6 ++++++ src/pmi/simple/simple_pmi.c | 33 ++++++++++++++++----------------- test/mpi/errors/spawn/unpub.c | 7 +++++-- 4 files changed, 28 insertions(+), 20 deletions(-) hooks/post-receive -- MPICH primary repository