1
1

Ensure that debugger connect can occur by getting the rml contact info updated before calling init_after_spawn

cmr:v1.7.3,reviewer=jsquyres

This commit was SVN r28455.
Этот коммит содержится в:
Ralph Castain 2013-05-06 22:00:45 +00:00
родитель c52b94af8b
Коммит f15fe5045e
4 изменённых файлов: 12 добавлений и 11 удалений

Просмотреть файл

@ -534,9 +534,6 @@ void orte_plm_base_post_launch(int fd, short args, void *cbdata)
return;
}
/* complete debugger interface */
ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_READY_FOR_DEBUGGERS);
/* cleanup */
OBJ_RELEASE(caddy);
}
@ -608,8 +605,9 @@ void orte_plm_base_registered(int fd, short args, void *cbdata)
}
cleanup:
/* RHC: need to init_after_spawn for debuggers */
/* no state to activate - this ends the launch sequence */
/* need to init_after_spawn for debuggers */
ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_READY_FOR_DEBUGGERS);
OBJ_RELEASE(caddy);
}

Просмотреть файл

@ -346,14 +346,9 @@ int orte_routed_base_process_callback(orte_jobid_t job, opal_buffer_t *buffer)
orte_vpid_t vpid;
int rc;
if (ORTE_JOB_FAMILY(job) == ORTE_JOB_FAMILY(ORTE_PROC_MY_NAME->jobid)) {
/* came from singleton - don't process it */
return ORTE_SUCCESS;
}
/* lookup the job object for this process */
if (NULL == (jdata = orte_get_job_data_object(job))) {
/* came from my job family - this is an error */
/* came from a different job family - this is an error */
ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND);
return ORTE_ERR_NOT_FOUND;
}

Просмотреть файл

@ -455,6 +455,10 @@ static int pack_child_contact_info(orte_jobid_t jobid, opal_buffer_t *buf)
continue;
}
if (jobid == pptr->name.jobid) {
if (OPAL_SUCCESS != (rc = opal_dss.pack(buf, &pptr->name.vpid, 1, ORTE_VPID))) {
ORTE_ERROR_LOG(rc);
return rc;
}
if (OPAL_SUCCESS != (rc = opal_dss.pack(buf, &pptr->rml_uri, 1, OPAL_STRING))) {
ORTE_ERROR_LOG(rc);
return rc;

Просмотреть файл

@ -2875,6 +2875,10 @@ void orte_debugger_init_after_spawn(int fd, short event, void *cbdata)
*/
continue;
}
opal_output_verbose(2, orte_debug_output,
"%s sending debugger release to %s",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
ORTE_NAME_PRINT(&proc->name));
buf = OBJ_NEW(opal_buffer_t); /* don't need anything in this */
if (0 > (rc = orte_rml.send_buffer_nb(&proc->name, buf,
ORTE_RML_TAG_DEBUGGER_RELEASE, 0,