diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2013-12-09 14:04:10 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2013-12-09 14:04:10 (GMT) |
commit | fc5113f2b1f39bc169e9a3d4de98d7cc6bff7c36 (patch) | |
tree | 0a9518eef413e6133cab09184e768f315a051044 /src/H5VLiod_attr.c | |
parent | 983a7c1c30efb526a51468736d1c5e1ef7b8152d (diff) | |
download | hdf5-fc5113f2b1f39bc169e9a3d4de98d7cc6bff7c36.zip hdf5-fc5113f2b1f39bc169e9a3d4de98d7cc6bff7c36.tar.gz hdf5-fc5113f2b1f39bc169e9a3d4de98d7cc6bff7c36.tar.bz2 |
[svn-r24508] - bug fixes exposed with multiple servers.
- Add Barrier in file_close to have process 0 finish its close before others can proceed.
- Add test for string attributes.
Diffstat (limited to 'src/H5VLiod_attr.c')
-rw-r--r-- | src/H5VLiod_attr.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/H5VLiod_attr.c b/src/H5VLiod_attr.c index 11e60cd..74e72f7 100644 --- a/src/H5VLiod_attr.c +++ b/src/H5VLiod_attr.c @@ -414,6 +414,7 @@ H5VL_iod_server_attr_read_cb(AXE_engine_t UNUSED axe_engine, hssize_t num_descriptors = 0; /* number of IOD file descriptors needed to describe filespace selection */ na_addr_t dest = HG_Handler_get_addr(op_data->hg_handle); /* destination address to push data to */ hbool_t opened_locally = FALSE; /* flag to indicate whether we opened the attribute here or if it was already open */ + iod_ret_t ret; herr_t ret_value = SUCCEED; FUNC_ENTER_NOAPI_NOINIT @@ -425,6 +426,11 @@ H5VL_iod_server_attr_read_cb(AXE_engine_t UNUSED axe_engine, opened_locally = TRUE; } +#if H5VL_IOD_DEBUG + fprintf(stderr, "Start Attribute Read on OH %"PRIu64" OID %"PRIx64"\n", + iod_oh, iod_id); +#endif + size = HG_Bulk_handle_get_size(bulk_handle); if(NULL == (buf = malloc(size))) @@ -471,8 +477,11 @@ H5VL_iod_server_attr_read_cb(AXE_engine_t UNUSED axe_engine, file_desc = hslabs; /* read from array object */ - if(iod_array_read(iod_oh, rtid, NULL, mem_desc, &file_desc, &iod_cs, NULL) < 0) + ret = iod_array_read(iod_oh, rtid, NULL, mem_desc, &file_desc, &iod_cs, NULL); + if(ret < 0) { + fprintf(stderr, "%d (%s).\n", ret, strerror(-ret)); HGOTO_ERROR2(H5E_SYM, H5E_READERROR, FAIL, "can't read from array object"); + } /* MSC - NEED IOD Checksums if(cs_scope & H5_CHECKSUM_MEMORY) { @@ -488,10 +497,10 @@ H5VL_iod_server_attr_read_cb(AXE_engine_t UNUSED axe_engine, /* Write bulk data here and wait for the data to be there */ if(HG_SUCCESS != HG_Bulk_write_all(dest, bulk_handle, bulk_block_handle, &bulk_request)) - HGOTO_ERROR2(H5E_SYM, H5E_READERROR, FAIL, "can't read from array object"); + HGOTO_ERROR2(H5E_SYM, H5E_READERROR, FAIL, "can't start Mercury Bulk Data write"); /* wait for it to complete */ if(HG_SUCCESS != HG_Bulk_wait(bulk_request, HG_MAX_IDLE_TIME, HG_STATUS_IGNORE)) - HGOTO_ERROR2(H5E_SYM, H5E_READERROR, FAIL, "can't read from array object"); + HGOTO_ERROR2(H5E_SYM, H5E_READERROR, FAIL, "Failed to wait on Mercury Bulk data write"); done: #if H5VL_IOD_DEBUG @@ -580,6 +589,11 @@ H5VL_iod_server_attr_write_cb(AXE_engine_t UNUSED axe_engine, opened_locally = TRUE; } +#if H5VL_IOD_DEBUG + fprintf(stderr, "Start Attribute Write on OH %"PRIu64" OID %"PRIx64"\n", + iod_oh, iod_id); +#endif + /* Read bulk data here and wait for the data to be here */ size = HG_Bulk_handle_get_size(bulk_handle); if(NULL == (buf = malloc(size))) |