summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-08-02 04:16:11 (GMT)
committerGitHub <noreply@github.com>2023-08-02 04:16:11 (GMT)
commit56451503c55ef6e5f67fc3bb710f9e5b649b1af2 (patch)
treef7bd6533dcb6ef8d6eb8f628a869105f3ddb29a3
parent74352dfda887c2ffe336bbcea19ee978dcd2ce8c (diff)
downloadhdf5-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.txt9
-rw-r--r--src/H5PLpath.c3
-rw-r--r--test/filter_plugin.c6
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;