From 179b4a0d45cdafcc385c7edec81a70633431893d Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Wed, 2 Aug 2023 11:27:10 -0500 Subject: Fix loading plugin fails with missing directory GH issue #3248 (#3323) --- release_docs/RELEASE.txt | 7 ++++++- src/H5PLpath.c | 3 +-- test/filter_plugin.c | 6 ++++++ 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; -- cgit v0.12