@@ -383,6 +383,10 @@ static void xcast_recv(int status, orte_process_name_t* sender,
383
383
if (ORTE_DAEMON_EXIT_CMD == command ||
384
384
ORTE_DAEMON_HALT_VM_CMD == command ) {
385
385
orte_orteds_term_ordered = true;
386
+ if (ORTE_DAEMON_HALT_VM_CMD == command ) {
387
+ /* this is an abnormal termination */
388
+ orte_abnormal_term_ordered = true;
389
+ }
386
390
/* copy the msg for relay to ourselves */
387
391
relay = OBJ_NEW (opal_buffer_t );
388
392
/* repack the command */
@@ -522,8 +526,10 @@ static void xcast_recv(int status, orte_process_name_t* sender,
522
526
*/
523
527
jdata = orte_get_job_data_object (nm -> name .jobid );
524
528
if (NULL == (rec = (orte_proc_t * )opal_pointer_array_get_item (jdata -> procs , nm -> name .vpid ))) {
525
- opal_output (0 , "%s grpcomm:direct:send_relay proc %s not found - cannot relay" ,
526
- ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ), ORTE_NAME_PRINT (& nm -> name ));
529
+ if (!orte_abnormal_term_ordered && !orte_orteds_term_ordered ) {
530
+ opal_output (0 , "%s grpcomm:direct:send_relay proc %s not found - cannot relay" ,
531
+ ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ), ORTE_NAME_PRINT (& nm -> name ));
532
+ }
527
533
OBJ_RELEASE (rly );
528
534
OBJ_RELEASE (item );
529
535
ORTE_FORCED_TERMINATE (ORTE_ERR_UNREACH );
@@ -532,9 +538,11 @@ static void xcast_recv(int status, orte_process_name_t* sender,
532
538
if ((ORTE_PROC_STATE_RUNNING < rec -> state &&
533
539
ORTE_PROC_STATE_CALLED_ABORT != rec -> state ) ||
534
540
!ORTE_FLAG_TEST (rec , ORTE_PROC_FLAG_ALIVE )) {
535
- opal_output (0 , "%s grpcomm:direct:send_relay proc %s not running - cannot relay: %s " ,
536
- ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ), ORTE_NAME_PRINT (& nm -> name ),
537
- ORTE_FLAG_TEST (rec , ORTE_PROC_FLAG_ALIVE ) ? orte_proc_state_to_str (rec -> state ) : "NOT ALIVE" );
541
+ if (!orte_abnormal_term_ordered && !orte_orteds_term_ordered ) {
542
+ opal_output (0 , "%s grpcomm:direct:send_relay proc %s not running - cannot relay: %s " ,
543
+ ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ), ORTE_NAME_PRINT (& nm -> name ),
544
+ ORTE_FLAG_TEST (rec , ORTE_PROC_FLAG_ALIVE ) ? orte_proc_state_to_str (rec -> state ) : "NOT ALIVE" );
545
+ }
538
546
OBJ_RELEASE (rly );
539
547
OBJ_RELEASE (item );
540
548
ORTE_FORCED_TERMINATE (ORTE_ERR_UNREACH );
0 commit comments