@@ -367,6 +367,7 @@ ompi_coll_portals4_reduce_intra(const void *sendbuf, void *recvbuf, int count,
367367        struct  ompi_communicator_t  * comm ,
368368        mca_coll_base_module_t  * module )
369369{
370+     int  ret ;
370371    mca_coll_portals4_module_t  * portals4_module  =  (mca_coll_portals4_module_t * ) module ;
371372    ompi_coll_portals4_request_t  * request ;
372373
@@ -381,9 +382,13 @@ ompi_coll_portals4_reduce_intra(const void *sendbuf, void *recvbuf, int count,
381382    request -> is_sync  =  true;
382383    request -> fallback_request  =  NULL ;
383384
384-     reduce_kary_tree_top (sendbuf , recvbuf , count ,
385+     ret   =   reduce_kary_tree_top (sendbuf , recvbuf , count ,
385386            dtype , op , root , comm ,  request ,  portals4_module );
386-     reduce_kary_tree_bottom (request );
387+     if  (OMPI_SUCCESS  !=  ret )
388+ 	return  ret ;
389+     ret  =  reduce_kary_tree_bottom (request );
390+     if  (OMPI_SUCCESS  !=  ret )
391+ 	return  ret ;
387392
388393    OMPI_COLL_PORTALS4_REQUEST_RETURN (request );
389394    return  (OMPI_SUCCESS );
@@ -398,6 +403,7 @@ ompi_coll_portals4_ireduce_intra(const void* sendbuf, void* recvbuf, int count,
398403        ompi_request_t  * *  ompi_request ,
399404        struct  mca_coll_base_module_2_1_0_t  * module )
400405{
406+     int  ret ;
401407    mca_coll_portals4_module_t  * portals4_module  =  (mca_coll_portals4_module_t * ) module ;
402408    ompi_coll_portals4_request_t  * request ;
403409
@@ -413,9 +419,10 @@ ompi_coll_portals4_ireduce_intra(const void* sendbuf, void* recvbuf, int count,
413419    request -> fallback_request  =  ompi_request ;
414420    request -> is_sync  =  false;
415421
416- 
417-     reduce_kary_tree_top (sendbuf , recvbuf , count ,
422+     ret  =  reduce_kary_tree_top (sendbuf , recvbuf , count ,
418423            dtype , op , root , comm ,  request ,  portals4_module );
424+     if  (OMPI_SUCCESS  !=  ret )
425+ 	return  ret ;
419426
420427    if  (!request -> u .reduce .is_optim ) {
421428        OMPI_COLL_PORTALS4_REQUEST_RETURN (request );
@@ -428,7 +435,11 @@ ompi_coll_portals4_ireduce_intra(const void* sendbuf, void* recvbuf, int count,
428435int 
429436ompi_coll_portals4_ireduce_intra_fini (ompi_coll_portals4_request_t  * request )
430437{
431-     reduce_kary_tree_bottom (request );
438+     int  ret ;
439+ 
440+     ret  =  reduce_kary_tree_bottom (request );
441+     if  (OMPI_SUCCESS  !=  ret )
442+ 	return  ret ;
432443
433444    OPAL_THREAD_LOCK (& ompi_request_lock );
434445    ompi_request_complete (& request -> super , true);
0 commit comments