summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-08-02 16:27:10 (GMT)
committerGitHub <noreply@github.com>2023-08-02 16:27:10 (GMT)
commit179b4a0d45cdafcc385c7edec81a70633431893d (patch)
tree847c5d42133fe585c58374927f58900156b7fcf2
parenta2bd42d9f2752a5de7eb92216624cdb63663ba51 (diff)
downloadhdf5-179b4a0d45cdafcc385c7edec81a70633431893d.zip
hdf5-179b4a0d45cdafcc385c7edec81a70633431893d.tar.gz
hdf5-179b4a0d45cdafcc385c7edec81a70633431893d.tar.bz2
Fix loading plugin fails with missing directory GH issue #3248 (#3323)
-rw-r--r--release_docs/RELEASE.txt7
-rw-r--r--src/H5PLpath.c3
-rw-r--r--test/filter_plugin.c6
3 files changed, 13 insertions, 3 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 0f407f4..e30e600 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -59,7 +59,12 @@ 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.
Parallel Library:
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;