1
1

Check the return status code on all dss operations within the rmcast modules

This commit was SVN r22349.
Этот коммит содержится в:
Ralph Castain 2009-12-30 01:45:31 +00:00
родитель fad1ba15b0
Коммит 89a6131032
2 изменённых файлов: 55 добавлений и 19 удалений

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

@ -1179,10 +1179,16 @@ static void xmit_data(int sd, short flags, void* send_req)
/* flag the buffer as containing iovecs */ /* flag the buffer as containing iovecs */
flag = 0; flag = 0;
opal_dss.pack(&buf, &flag, 1, OPAL_INT8); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &flag, 1, OPAL_INT8))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
/* pack the number of iovecs */ /* pack the number of iovecs */
opal_dss.pack(&buf, &snd->iovec_count, 1, OPAL_INT32); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &snd->iovec_count, 1, OPAL_INT32))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
/* pack each iovec into a buffer in prep for sending /* pack each iovec into a buffer in prep for sending
* so we can recreate the array at the other end * so we can recreate the array at the other end
@ -1190,13 +1196,22 @@ static void xmit_data(int sd, short flags, void* send_req)
for (sz=0; sz < snd->iovec_count; sz++) { for (sz=0; sz < snd->iovec_count; sz++) {
/* pack the size */ /* pack the size */
tmp32 = snd->iovec_array[sz].iov_len; tmp32 = snd->iovec_array[sz].iov_len;
opal_dss.pack(&buf, &tmp32, 1, OPAL_INT32); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &tmp32, 1, OPAL_INT32))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
/* pack the bytes */ /* pack the bytes */
opal_dss.pack(&buf, &(snd->iovec_array[sz].iov_base), tmp32, OPAL_UINT8); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &(snd->iovec_array[sz].iov_base), tmp32, OPAL_UINT8))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
} }
/* unload the working buf to obtain the payload */ /* unload the working buf to obtain the payload */
opal_dss.unload(&buf, (void**)&bytes, &sz); if (ORTE_SUCCESS != (rc = opal_dss.unload(&buf, (void**)&bytes, &sz))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
/* done with the working buf */ /* done with the working buf */
OBJ_DESTRUCT(&buf); OBJ_DESTRUCT(&buf);
@ -1205,16 +1220,22 @@ static void xmit_data(int sd, short flags, void* send_req)
OBJ_CONSTRUCT(&buf, opal_buffer_t); OBJ_CONSTRUCT(&buf, opal_buffer_t);
/* flag it as being a buffer */ /* flag it as being a buffer */
flag = 1; flag = 1;
opal_dss.pack(&buf, &flag, 1, OPAL_INT8); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &flag, 1, OPAL_INT8))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
/* copy the payload */ /* copy the payload */
if (ORTE_SUCCESS != (rc = opal_dss.copy_payload(&buf, snd->buf))) { if (ORTE_SUCCESS != (rc = opal_dss.copy_payload(&buf, snd->buf))) {
ORTE_ERROR_LOG(rc); ORTE_ERROR_LOG(rc);
continue; goto CLEANUP;
} }
/* unload the working buf to obtain the payload */ /* unload the working buf to obtain the payload */
opal_dss.unload(&buf, (void**)&bytes, &sz); if (ORTE_SUCCESS != (rc = opal_dss.unload(&buf, (void**)&bytes, &sz))) {
ORTE_ERROR_LOG(rc);
goto CLEANUP;
}
/* done with the working buf */ /* done with the working buf */
OBJ_DESTRUCT(&buf); OBJ_DESTRUCT(&buf);
@ -1232,11 +1253,12 @@ static void xmit_data(int sd, short flags, void* send_req)
outbound, ORTE_RMCAST_BASIC_MAX_MSG_SIZE); outbound, ORTE_RMCAST_BASIC_MAX_MSG_SIZE);
if (1 == flag) { if (1 == flag) {
/* reload into original buffer */ /* reload into original buffer */
opal_dss.load(snd->buf, (void*)bytes, sz); if (ORTE_SUCCESS != (rc = opal_dss.load(snd->buf, (void*)bytes, sz))) {
ORTE_ERROR_LOG(rc);
}
} }
/* cleanup */ /* cleanup */
OBJ_RELEASE(item); goto CLEANUP;
continue;
} }
OPAL_OUTPUT_VERBOSE((2, orte_rmcast_base.rmcast_output, OPAL_OUTPUT_VERBOSE((2, orte_rmcast_base.rmcast_output,
@ -1254,8 +1276,7 @@ static void xmit_data(int sd, short flags, void* send_req)
opal_dss.load(snd->buf, (void*)bytes, sz); opal_dss.load(snd->buf, (void*)bytes, sz);
} }
/* cleanup */ /* cleanup */
OBJ_RELEASE(item); goto CLEANUP;
continue;
} }
if (1 == flag) { if (1 == flag) {
@ -1279,7 +1300,7 @@ static void xmit_data(int sd, short flags, void* send_req)
/* roll to next message sequence number */ /* roll to next message sequence number */
ORTE_MULTICAST_NEXT_SEQUENCE_NUM(chan->seq_num); ORTE_MULTICAST_NEXT_SEQUENCE_NUM(chan->seq_num);
CLEANUP:
/* cleanup */ /* cleanup */
OBJ_RELEASE(item); OBJ_RELEASE(item);
} }

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

@ -362,10 +362,16 @@ process:
if (NULL == snd->buf) { if (NULL == snd->buf) {
/* no, flag the buffer as containing iovecs */ /* no, flag the buffer as containing iovecs */
flag = 0; flag = 0;
opal_dss.pack(&buf, &flag, 1, OPAL_INT8); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &flag, 1, OPAL_INT8))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
/* pack the number of iovecs */ /* pack the number of iovecs */
opal_dss.pack(&buf, &snd->iovec_count, 1, OPAL_INT32); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &snd->iovec_count, 1, OPAL_INT32))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
/* pack each iovec into a buffer in prep for sending /* pack each iovec into a buffer in prep for sending
* so we can recreate the array at the other end * so we can recreate the array at the other end
@ -373,15 +379,24 @@ process:
for (sz=0; sz < snd->iovec_count; sz++) { for (sz=0; sz < snd->iovec_count; sz++) {
/* pack the size */ /* pack the size */
tmp32 = snd->iovec_array[sz].iov_len; tmp32 = snd->iovec_array[sz].iov_len;
opal_dss.pack(&buf, &tmp32, 1, OPAL_INT32); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &tmp32, 1, OPAL_INT32))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
/* pack the bytes */ /* pack the bytes */
opal_dss.pack(&buf, &(snd->iovec_array[sz].iov_base), tmp32, OPAL_UINT8); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &(snd->iovec_array[sz].iov_base), tmp32, OPAL_UINT8))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
} }
} else { } else {
/* flag it as being a buffer */ /* flag it as being a buffer */
flag = 1; flag = 1;
opal_dss.pack(&buf, &flag, 1, OPAL_INT8); if (ORTE_SUCCESS != (rc = opal_dss.pack(&buf, &flag, 1, OPAL_INT8))) {
ORTE_ERROR_LOG(rc);
goto cleanup;
}
/* copy the payload */ /* copy the payload */
if (ORTE_SUCCESS != (rc = opal_dss.copy_payload(&buf, snd->buf))) { if (ORTE_SUCCESS != (rc = opal_dss.copy_payload(&buf, snd->buf))) {