For some reason, the buffer gets trashed, so for now, let's process and then relay...until I can figure out the race condition that is causing the problem.
This commit was SVN r20665.
Этот коммит содержится в:
родитель
fd979b2278
Коммит
f0fcaf8b32
@ -297,13 +297,24 @@ void orte_daemon_cmd_processor(int fd, short event, void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* rewind the buffer to the right place for processing the cmd */
|
||||||
|
buffer->unpack_ptr = save;
|
||||||
|
|
||||||
|
/* process the command */
|
||||||
|
if (ORTE_SUCCESS != (ret = process_commands(sender, buffer, tag))) {
|
||||||
|
OPAL_OUTPUT_VERBOSE((1, orte_debug_output,
|
||||||
|
"%s orte:daemon:cmd:processor failed on error %s",
|
||||||
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_ERROR_NAME(ret)));
|
||||||
|
}
|
||||||
|
|
||||||
/* rewind the buffer to the beginning */
|
/* rewind the buffer to the beginning */
|
||||||
buffer->unpack_ptr = unpack_ptr;
|
buffer->unpack_ptr = unpack_ptr;
|
||||||
/* do the relay */
|
/* do the relay */
|
||||||
send_relay(buffer);
|
send_relay(buffer);
|
||||||
|
|
||||||
/* rewind the buffer to the right place for processing the cmd */
|
/* done */
|
||||||
buffer->unpack_ptr = save;
|
goto CLEANUP;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* rewind the buffer so we can process it correctly */
|
/* rewind the buffer so we can process it correctly */
|
||||||
buffer->unpack_ptr = unpack_ptr;
|
buffer->unpack_ptr = unpack_ptr;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user