Skip to content

Commit

Permalink
Add more checks and error out when no server is selected
Browse files Browse the repository at this point in the history
  • Loading branch information
houjun committed Apr 26, 2024
1 parent 5fed0af commit ccaf036
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/api/pdc_region/pdc_region_transfer.c
Original file line number Diff line number Diff line change
Expand Up @@ -903,7 +903,7 @@ register_metadata(pdc_transfer_request_start_all_pkg **transfer_request_input, i
* sorted in terms of data_server_id. We pack data from user buffer to contiguous buffers. Static partitioning
* requires having at most n_data_servers number of contiguous regions.
*/
static int
static perr_t
prepare_start_all_requests(pdcid_t *transfer_request_id, int size,
pdc_transfer_request_start_all_pkg ***write_transfer_request_ptr,
pdc_transfer_request_start_all_pkg ***read_transfer_request_ptr,
Expand Down Expand Up @@ -934,7 +934,7 @@ prepare_start_all_requests(pdcid_t *transfer_request_id, int size,
printf("PDC Client PDCregion_transfer_start_all attempt to start existing transfer request @ "
"line %d\n",
__LINE__);
return 1;
return FAIL;
}
if (transfer_request->consistency == PDC_CONSISTENCY_POSIX) {
posix_transfer_request_id_ptr[0][posix_size_ptr[0]] = transfer_request_id[i];
Expand All @@ -959,6 +959,11 @@ prepare_start_all_requests(pdcid_t *transfer_request_id, int size,
&(transfer_request->n_obj_servers), &(transfer_request->obj_servers),
&(transfer_request->sub_offsets), &(transfer_request->output_offsets),
&(transfer_request->output_sizes), &(transfer_request->output_buf));
if (transfer_request->n_obj_servers == 0) {
printf("PDC_Client %d, %s: error with static region partition, no server is selected!\n",
pdc_client_mpi_rank_g, __func__);
return FAIL;
}
for (j = 0; j < transfer_request->n_obj_servers; ++j) {
request_pkgs =
(pdc_transfer_request_start_all_pkg *)malloc(sizeof(pdc_transfer_request_start_all_pkg));
Expand Down Expand Up @@ -1082,7 +1087,7 @@ prepare_start_all_requests(pdcid_t *transfer_request_id, int size,
else {
*read_size_ptr = 0;
}
return 0;
return SUCCEED;
}

static int
Expand Down Expand Up @@ -1321,7 +1326,7 @@ PDCregion_transfer_start_all(pdcid_t *transfer_request_id, int size)
FUNC_ENTER(NULL);
// Split write and read requests. Handle them separately.
// printf("PDCregion_transfer_start_all: checkpoint %d\n", __LINE__);
prepare_start_all_requests(transfer_request_id, size, &write_transfer_requests, &read_transfer_requests,
ret_value = prepare_start_all_requests(transfer_request_id, size, &write_transfer_requests, &read_transfer_requests,
&write_size, &read_size, &posix_transfer_request_id, &posix_size);
/*
printf("PDCregion_transfer_start_all: checkpoint %d, write_size = %d, read_size = %d\n", __LINE__,
Expand Down Expand Up @@ -1454,12 +1459,17 @@ PDCregion_transfer_start(pdcid_t transfer_request_id)

if (transfer_request->region_partition == PDC_REGION_STATIC) {
// Identify which part of the region is going to which data server.
static_region_partition(transfer_request->new_buf, transfer_request->remote_region_ndim, unit,
ret_value = static_region_partition(transfer_request->new_buf, transfer_request->remote_region_ndim, unit,
transfer_request->access_type, transfer_request->obj_dims,
transfer_request->remote_region_offset, transfer_request->remote_region_size,
1, &(transfer_request->n_obj_servers), &(transfer_request->obj_servers),
&(transfer_request->sub_offsets), &(transfer_request->output_offsets),
&(transfer_request->output_sizes), &(transfer_request->output_buf));
if (transfer_request->n_obj_servers == 0) {
printf("PDC_Client %d, %s: error with static region partition, no server is selected!\n",
pdc_client_mpi_rank_g, __func__);
return FAIL;
}
/*
printf("n_obj_servers = %d\n", transfer_request->n_obj_servers);
for ( i = 0; i < transfer_request->n_obj_servers; ++i ) {
Expand Down

0 comments on commit ccaf036

Please sign in to comment.