You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue prevents us from running vol-tests. vol-tests will fail in the setup stage (before any actual tests are performed).
A test program to reproduce the problem is provided below.
However, running the test program with the Passthru VOL (provided by HDF5 group) gives the same segmentation error.
Therefore, it's possible that the root cause is outside our library.
Reproducing the issue
Click here to see a test program that reproduces the problem:
#include<stdlib.h>#include<string.h>#include"hdf5.h"#defineCHECK_ERR(A) \
{ \
if (A < 0) { \
printf ("Error at line %d: code %d\n", __LINE__, A); \
goto err_out; \
} \
}
hid_tget_vol_id (intargc, char**argv, intrank);
intmain (intargc, char**argv) {
herr_terr=0;
intrank;
hid_tfapl_id, connector_id;
uint64_tvol_cap_flags;
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
// get connector id, return one of the following:// 1) the id for Log VOL// 2) the id for the Passthru VOL (provided by HDF5 group)// 3) -1 (error case)connector_id=get_vol_id(argc, argv, rank);
CHECK_ERR(connector_id);
// create a file access property listfapl_id=H5Pcreate (H5P_FILE_ACCESS);
CHECK_ERR (fapl_id);
// set the underlying VOL of fapl_iderr=H5Pset_vol(fapl_id, connector_id, NULL);
CHECK_ERR(err);
// get vol_cap_flagserr=H5Pget_vol_cap_flags(fapl_id, &vol_cap_flags); // seg fault happens inside this line// following codes not able to run due to the seg fault aboveCHECK_ERR (err);
err_out:;
if (fapl_id>0) H5Pclose (fapl_id);
MPI_Finalize ();
returnerr;
}
hid_tget_vol_id (intargc, char**argv, intrank) {
hid_tconnector_id=H5I_INVALID_HID;
if (argc>2) {
if (!rank) printf ("Usage: %s [volname]\n", argv[0]);
goto err_out;
}
// return the id for LOG VOLif (strcmp(argv[1], "LOG") ==0) {
if (!rank) printf ("Using connetcor: %s\n", argv[1]);
connector_id=H5VLregister_connector_by_name ("LOG", H5P_DEFAULT);
CHECK_ERR (connector_id);
}
// return the id for Passthru VOLelseif (strcmp(argv[1], "pass_through") ==0) {
if (!rank) printf ("Using connetcor: %s\n", argv[1]);
connector_id=H5VL_pass_through_register();
CHECK_ERR (connector_id);
}
// error caseelse {
if (!rank) {
printf("Not supported for this test program.");
printf ("Using connetcor: %s\n", argv[1]);
}
}
err_out:;
returnconnector_id;
}
Summary
H5Pget_vol_cap_flags
gives segmentation fault.Details
This issue prevents us from running vol-tests. vol-tests will fail in the setup stage (before any actual tests are performed).
A test program to reproduce the problem is provided below.
However, running the test program with the Passthru VOL (provided by HDF5 group) gives the same segmentation error.
Therefore, it's possible that the root cause is outside our library.
Reproducing the issue
Click here to see a test program that reproduces the problem:
Click here to see the makefile:
make
to compile.make run
to run the test program with Log VOL.make passthru
to run the test program with the Passthru VOL (provided by HDF5 group).gdb output, using Log VOL
gdb output, using the Passthru VOL
The text was updated successfully, but these errors were encountered: