Skip to content

Commit 7a42e85

Browse files
Standardize ID Lookup Null Checks and Error Handling (#281)
* cleanup finding id's * Committing clang-format changes --------- Co-authored-by: github-actions <github-actions[bot]@users.noreply.github.com>
1 parent 7c118b2 commit 7a42e85

File tree

9 files changed

+157
-208
lines changed

9 files changed

+157
-208
lines changed

src/api/pdc_client_connect.c

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4602,9 +4602,8 @@ PDC_Client_write_id(pdcid_t local_obj_id, struct pdc_region_info *region, void *
46024602
pdc_metadata_t * meta;
46034603
perr_t ret_value = SUCCEED;
46044604

4605-
info = PDC_find_id(local_obj_id);
4606-
if (info == NULL)
4607-
PGOTO_ERROR(FAIL, "obj_id %" PRIu64 " invalid", local_obj_id);
4605+
if ((info = PDC_find_id(local_obj_id)) == NULL)
4606+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", local_obj_id);
46084607

46094608
object = (struct _pdc_obj_info *)(info->obj_ptr);
46104609
meta = object->metadata;
@@ -4825,15 +4824,20 @@ PDC_Client_add_objects_to_container(int nobj, pdcid_t *local_obj_ids, pdcid_t lo
48254824

48264825
obj_ids = (uint64_t *)PDC_malloc(sizeof(uint64_t) * nobj);
48274826
for (i = 0; i < nobj; i++) {
4828-
id_info = PDC_find_id(local_obj_ids[i]);
4827+
if ((id_info = PDC_find_id(local_obj_ids[i])) == NULL) {
4828+
LOG_ERROR("Failed to find PDC ID: %d\n", local_obj_ids[i]);
4829+
continue;
4830+
}
48294831
obj_ids[i] = ((struct _pdc_obj_info *)(id_info->obj_ptr))->obj_info_pub->meta_id;
48304832
}
48314833

4832-
id_info = PDC_find_id(local_cont_id);
4834+
if ((id_info = PDC_find_id(local_cont_id)) == NULL)
4835+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", local_cont_id);
48334836
cont_meta_id = ((struct _pdc_cont_info *)(id_info->obj_ptr))->cont_info_pub->meta_id;
48344837

48354838
ret_value = PDC_Client_add_del_objects_to_container(nobj, obj_ids, cont_meta_id, ADD_OBJ);
48364839

4840+
done:
48374841
FUNC_LEAVE(ret_value);
48384842
}
48394843

@@ -4851,15 +4855,20 @@ PDC_Client_del_objects_to_container(int nobj, pdcid_t *local_obj_ids, pdcid_t lo
48514855

48524856
obj_ids = (uint64_t *)PDC_malloc(sizeof(uint64_t) * nobj);
48534857
for (i = 0; i < nobj; i++) {
4854-
id_info = PDC_find_id(local_obj_ids[i]);
4858+
if ((id_info = PDC_find_id(local_obj_ids[i])) == NULL) {
4859+
LOG_ERROR("Failed to find PDC ID: %d\n", local_obj_ids[i]);
4860+
continue;
4861+
}
48554862
obj_ids[i] = ((struct _pdc_obj_info *)(id_info->obj_ptr))->obj_info_pub->meta_id;
48564863
}
48574864

4858-
id_info = PDC_find_id(local_cont_id);
4865+
if ((id_info = PDC_find_id(local_cont_id)) == NULL)
4866+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", local_cont_id);
48594867
cont_meta_id = ((struct _pdc_cont_info *)(id_info->obj_ptr))->cont_info_pub->meta_id;
48604868

48614869
ret_value = PDC_Client_add_del_objects_to_container(nobj, obj_ids, cont_meta_id, DEL_OBJ);
48624870

4871+
done:
48634872
FUNC_LEAVE(ret_value);
48644873
}
48654874

@@ -4878,9 +4887,8 @@ PDC_Client_add_tags_to_container(pdcid_t cont_id, char *tags)
48784887
uint64_t cont_meta_id;
48794888
cont_add_tags_rpc_in_t add_tag_rpc_in;
48804889

4881-
info = PDC_find_id(cont_id);
4882-
if (info == NULL)
4883-
PGOTO_ERROR(FAIL, "cont_id %" PRIu64 " invalid", cont_id);
4890+
if ((info = PDC_find_id(cont_id)) == NULL)
4891+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", cont_id);
48844892

48854893
object = (struct _pdc_cont_info *)(info->obj_ptr);
48864894
cont_meta_id = object->cont_info_pub->meta_id;
@@ -6942,8 +6950,9 @@ PDCobj_put_data(const char *obj_name, void *data, uint64_t size, pdcid_t cont_id
69426950
struct _pdc_id_info * id_info = NULL;
69436951
pdcid_t transfer_request;
69446952

6945-
id_info = PDC_find_id(cont_id);
6946-
info = (struct _pdc_cont_info *)(id_info->obj_ptr);
6953+
if ((id_info = PDC_find_id(cont_id)) == NULL)
6954+
PGOTO_ERROR(0, "Failed to find PDC ID: %d", cont_id);
6955+
info = (struct _pdc_cont_info *)(id_info->obj_ptr);
69476956

69486957
obj_prop = PDCprop_create(PDC_OBJ_CREATE, info->cont_pt->pdc->local_id);
69496958
PDCprop_set_obj_type(obj_prop, PDC_CHAR);

src/api/pdc_obj/pdc_cont.c

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,8 @@ PDCcont_create(const char *cont_name, pdcid_t cont_prop_id)
6969
PGOTO_ERROR(0, "PDC pub container memory allocation failed");
7070
p->cont_info_pub->name = strdup(cont_name);
7171

72-
id_info = PDC_find_id(cont_prop_id);
73-
if (id_info == NULL)
74-
PGOTO_ERROR(0, "Failed to find cont prop using pdcid");
72+
if ((id_info = PDC_find_id(cont_prop_id)) == NULL)
73+
PGOTO_ERROR(0, "Failed to find PDC ID: %d", cont_prop_id);
7574
cont_prop = (struct _pdc_cont_prop *)(id_info->obj_ptr);
7675

7776
p->cont_pt = (struct _pdc_cont_prop *)PDC_calloc(1, sizeof(struct _pdc_cont_prop));
@@ -121,7 +120,8 @@ PDCcont_create_col(const char *cont_name, pdcid_t cont_prop_id)
121120
PGOTO_ERROR(0, "PDC pub container memory allocation failed");
122121
p->cont_info_pub->name = strdup(cont_name);
123122

124-
id_info = PDC_find_id(cont_prop_id);
123+
if ((id_info = PDC_find_id(cont_prop_id)) == NULL)
124+
PGOTO_ERROR(0, "Failed to find PDC ID: %d", cont_prop_id);
125125
cont_prop = (struct _pdc_cont_prop *)(id_info->obj_ptr);
126126

127127
p->cont_pt = (struct _pdc_cont_prop *)PDC_calloc(1, sizeof(struct _pdc_cont_prop));
@@ -170,7 +170,8 @@ PDC_cont_create_local(pdcid_t pdc, const char *cont_name, uint64_t cont_meta_id)
170170

171171
cont_prop_id = PDCprop_create(PDC_CONT_CREATE, pdc);
172172

173-
id_info = PDC_find_id(cont_prop_id);
173+
if ((id_info = PDC_find_id(cont_prop_id)) == NULL)
174+
PGOTO_ERROR(0, "Failed to find PDC ID: %d", cont_prop_id);
174175
cont_prop = (struct _pdc_cont_prop *)(id_info->obj_ptr);
175176
p->cont_pt = (struct _pdc_cont_prop *)PDC_calloc(1, sizeof(struct _pdc_cont_prop));
176177
if (!p->cont_pt)
@@ -311,9 +312,8 @@ PDC_cont_get_info(pdcid_t cont_id)
311312
struct _pdc_cont_info *info = NULL;
312313
struct _pdc_id_info * id_info = NULL;
313314

314-
id_info = PDC_find_id(cont_id);
315-
if (id_info == NULL)
316-
PGOTO_ERROR(NULL, "Cannot locate object");
315+
if ((id_info = PDC_find_id(cont_id)) == NULL)
316+
PGOTO_ERROR(NULL, "Failed to find PDC ID: %d", cont_id);
317317

318318
info = (struct _pdc_cont_info *)(id_info->obj_ptr);
319319
ret_value = (struct _pdc_cont_info *)PDC_calloc(1, sizeof(struct _pdc_cont_info));
@@ -448,9 +448,8 @@ PDCcont_persist(pdcid_t cont_id)
448448
perr_t ret_value = SUCCEED;
449449
struct _pdc_id_info *info;
450450

451-
info = PDC_find_id(cont_id);
452-
if (info == NULL)
453-
PGOTO_ERROR(FAIL, "Cannot locate container ID");
451+
if ((info = PDC_find_id(cont_id)) == NULL)
452+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", cont_id);
454453

455454
((struct _pdc_cont_info *)info->obj_ptr)->cont_pt->cont_life = PDC_PERSIST;
456455

@@ -466,9 +465,8 @@ PDCprop_set_cont_lifetime(pdcid_t cont_prop, pdc_lifetime_t cont_lifetime)
466465
perr_t ret_value = SUCCEED;
467466
struct _pdc_id_info *info;
468467

469-
info = PDC_find_id(cont_prop);
470-
if (info == NULL)
471-
PGOTO_ERROR(FAIL, "Cannot locate container property ID");
468+
if ((info = PDC_find_id(cont_prop)) == NULL)
469+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", cont_prop);
472470
((struct _pdc_cont_prop *)(info->obj_ptr))->cont_life = cont_lifetime;
473471

474472
done:

src/api/pdc_obj/pdc_mpi.c

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,9 @@ PDCobj_create_mpi(pdcid_t cont_id, const char *obj_name, pdcid_t obj_prop_id, in
4747
ret_value = PDC_obj_create(cont_id, obj_name, obj_prop_id, PDC_OBJ_LOCAL);
4848

4949
if (ret_value == 0)
50-
PGOTO_ERROR(ret_value, "PDC_obj_create failed");
51-
52-
id_info = PDC_find_id(ret_value);
53-
if (id_info == NULL)
54-
PGOTO_ERROR(0, "PDC_find_id failed for object id: %d", ret_value);
50+
PGOTO_ERROR(0, "PDC_obj_create failed");
51+
if ((id_info = PDC_find_id(ret_value)) == NULL)
52+
PGOTO_ERROR(0, "Failed to find PDC ID: %d", ret_value);
5553

5654
p = (struct _pdc_obj_info *)(id_info->obj_ptr);
5755

@@ -69,21 +67,20 @@ PDCobj_encode(pdcid_t obj_id, pdcid_t *meta_id)
6967
{
7068
FUNC_ENTER(NULL);
7169

72-
perr_t ret_value = FAIL;
70+
perr_t ret_value = SUCCEED;
7371
struct _pdc_id_info * objinfo;
7472
struct _pdc_obj_info *obj;
7573
int client_rank, client_size;
7674

7775
MPI_Comm_size(MPI_COMM_WORLD, &client_size);
7876
if (client_size < 2)
79-
PGOTO_ERROR(ret_value, "Requires at least two processes");
77+
PGOTO_ERROR(FAIL, "Requires at least two processes");
8078

8179
MPI_Comm_rank(MPI_COMM_WORLD, &client_rank);
8280

8381
if (client_rank == 0) {
84-
objinfo = PDC_find_id(obj_id);
85-
if (objinfo == NULL)
86-
PGOTO_ERROR(ret_value, "Cannot locate object ID");
82+
if ((objinfo = PDC_find_id(obj_id)) == NULL)
83+
PGOTO_ERROR(FAIL, "Failed to find PDC ID: %d", obj_id);
8784
obj = (struct _pdc_obj_info *)(objinfo->obj_ptr);
8885
if (obj->location == PDC_OBJ_LOCAL)
8986
PGOTO_ERROR(FAIL, "Trying to encode local object");
@@ -110,9 +107,8 @@ PDCobj_decode(pdcid_t obj_id, pdcid_t meta_id)
110107

111108
MPI_Comm_rank(MPI_COMM_WORLD, &client_rank);
112109
if (client_rank != 0) {
113-
objinfo = PDC_find_id(obj_id);
114-
if (objinfo == NULL)
115-
PGOTO_ERROR(ret_value, "Cannot locate object ID");
110+
if ((objinfo = PDC_find_id(obj_id)) == NULL)
111+
PGOTO_ERROR(ret_value, "Failed to find PDC ID: %d", obj_id);
116112
obj = (struct _pdc_obj_info *)(objinfo->obj_ptr);
117113
obj->obj_info_pub->meta_id = meta_id;
118114
}

0 commit comments

Comments
 (0)