Fix a bug in tcp multicast
This commit was SVN r23547.
Этот коммит содержится в:
родитель
586f5b8bf5
Коммит
9fbd7c1949
@ -839,7 +839,12 @@ static void relay(int fd, short event, void *cbdata)
|
|||||||
if (NULL == (proc = (orte_proc_t*)opal_pointer_array_get_item(daemons->procs, v))) {
|
if (NULL == (proc = (orte_proc_t*)opal_pointer_array_get_item(daemons->procs, v))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (proc->name.vpid == msg->sender.vpid) {
|
/* if this message came from a daemon, then we don't want
|
||||||
|
* to send it back to the same one as it will enter an
|
||||||
|
* infinite loop
|
||||||
|
*/
|
||||||
|
if (ORTE_PROC_MY_NAME->jobid == msg->sender.jobid &&
|
||||||
|
proc->name.vpid == msg->sender.vpid) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (NULL == proc->rml_uri) {
|
if (NULL == proc->rml_uri) {
|
||||||
@ -858,8 +863,17 @@ static void relay(int fd, short event, void *cbdata)
|
|||||||
child = (orte_odls_child_t*)item;
|
child = (orte_odls_child_t*)item;
|
||||||
if (NULL == child->rml_uri) {
|
if (NULL == child->rml_uri) {
|
||||||
/* race condition */
|
/* race condition */
|
||||||
|
OPAL_OUTPUT_VERBOSE((7, orte_rmcast_base.rmcast_output,
|
||||||
|
"%s child %s has not checked in",
|
||||||
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||||
|
ORTE_NAME_PRINT(child->name)));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
OPAL_OUTPUT_VERBOSE((2, orte_rmcast_base.rmcast_output,
|
||||||
|
"%s relaying multicast msg from %s to %s",
|
||||||
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||||
|
ORTE_NAME_PRINT(&msg->sender),
|
||||||
|
ORTE_NAME_PRINT(child->name)));
|
||||||
if (0 > (rc = orte_rml.send_buffer(child->name, msg->buffer, ORTE_RML_TAG_MULTICAST, 0))) {
|
if (0 > (rc = orte_rml.send_buffer(child->name, msg->buffer, ORTE_RML_TAG_MULTICAST, 0))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user