diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2023-08-02 04:16:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-02 04:16:11 (GMT) |
commit | 56451503c55ef6e5f67fc3bb710f9e5b649b1af2 (patch) | |
tree | f7bd6533dcb6ef8d6eb8f628a869105f3ddb29a3 | |
parent | 74352dfda887c2ffe336bbcea19ee978dcd2ce8c (diff) | |
download | hdf5-56451503c55ef6e5f67fc3bb710f9e5b649b1af2.zip hdf5-56451503c55ef6e5f67fc3bb710f9e5b649b1af2.tar.gz hdf5-56451503c55ef6e5f67fc3bb710f9e5b649b1af2.tar.bz2 |
Fix loading plugin fails with missing directory GH issue #3248 (#3315)
-rw-r--r-- | release_docs/RELEASE.txt | 9 | ||||
-rw-r--r-- | src/H5PLpath.c | 3 | ||||
-rw-r--r-- | test/filter_plugin.c | 6 |
3 files changed, 15 insertions, 3 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index a959fa9..c382af0 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -169,9 +169,16 @@ New Features Library: -------- + - Change the error handling for a not found path in the find plugin process. + + While attempting to load a plugin the HDF5 library will fail if one of the + directories in the plugin paths does not exist, even if there are more paths + to check. Instead of exiting the function with an error, just logged the error + and continue processing the list of paths to check. + - Implemented support for temporary security credentials for the Read-Only S3 (ROS3) file driver. - + When using temporary security credentials, one also needs to specify a session/security token next to the access key id and secret access key. This token can be specified by the new API function H5Pset_fapl_ros3_token(). diff --git a/src/H5PLpath.c b/src/H5PLpath.c index c47c6fa..5681c1f 100644 --- a/src/H5PLpath.c +++ b/src/H5PLpath.c @@ -801,8 +801,7 @@ H5PL__find_plugin_in_path_table(const H5PL_search_params_t *search_params, hbool /* Search for the plugin in this path */ if (H5PL__find_plugin_in_path(search_params, found, H5PL_paths_g[u], plugin_info) < 0) - HGOTO_ERROR(H5E_PLUGIN, H5E_CANTGET, FAIL, "search in path %s encountered an error", - H5PL_paths_g[u]) + HERROR(H5E_PLUGIN, H5E_CANTGET, "search in path %s encountered an error", H5PL_paths_g[u]); /* Break out if found */ if (*found) { diff --git a/test/filter_plugin.c b/test/filter_plugin.c index 64230e5..6bd63d5 100644 --- a/test/filter_plugin.c +++ b/test/filter_plugin.c @@ -1524,6 +1524,12 @@ main(void) else my_fapl_id = old_ff_fapl_id; + /* Add extra path to check for correct error process */ + if (H5PLprepend("bogus") < 0) { + fprintf(stderr, "Could not prepend path:bogus\n"); + TEST_ERROR; + } + /* Reopen the file for testing data reading */ if ((fid = H5Fopen(filename, H5F_ACC_RDONLY, my_fapl_id)) < 0) TEST_ERROR; |