Hi,

It looks like flock() is not implemented on your filesystem, which is causing 
the create call to fail. flock() file locking is used by the HDF5 1.10.0 to 
help enforce single-writer/multiple-readers (SWMR) semantics, but is not 
necessary for correct operation of the library. A fix for this problem should 
be available in HDF5 1.10.1, but in the meantime you can apply a source patch 
found here:

https://www.hdfgroup.org/HDF5/release/obtainsrc5110.html#conf

under "Patch to Disable File Locking" at the bottom of the page.

Cheers,

Dana Robinson
Software Engineer
The HDF Group

From: Hdf-forum [mailto:[email protected]] On Behalf Of ???
Sent: Tuesday, July 26, 2016 1:35 AM
To: [email protected]
Subject: [Hdf-forum] Error detected in HDF5 (1.10.0) thread 0: 
/home/hdftest/snapshots-hdf5_1_10_alpha/current/src

Hi,
I have met an obscure failure, and not find a good solution for two days. Could 
you help me? Thanks!
(Using: hdf5-1.10.0-patch1-linux-centos6-x86_64-gcc447-shared.tar.gz)
(Environment: redhat6.4-Intel-X64-g++4.4.7)

The error information:
HDF5-DIAG: Error detected in HDF5 (1.10.0) thread 0:
  #000: /home/hdftest/snapshots-hdf5_1_10_alpha/current/src/H5F.c line 491 in 
H5Fcreate(): unable to create file
    major: File accessibilty
    minor: Unable to open file
  #001: /home/hdftest/snapshots-hdf5_1_10_alpha/current/src/H5Fint.c line 1168 
in H5F_open(): unable to lock the file or initialize file structure
    major: File accessibilty
    minor: Unable to open file
  #002: /home/hdftest/snapshots-hdf5_1_10_alpha/current/src/H5FD.c line 1821 in 
H5FD_lock(): driver lock request failed
    major: Virtual File Layer
    minor: Can't update object
  #003: /home/hdftest/snapshots-hdf5_1_10_alpha/current/src/H5FDsec2.c line 939 
in H5FD_sec2_lock(): unable to flock file, errno = 38, error message = 
'Function not implemented'
    major: File accessibilty
    minor: Bad file ID accessed
HDF5-DIAG: Error detected in HDF5 (1.10.0) thread 0:
  #000: /home/hdftest/snapshots-hdf5_1_10_alpha/current/src/H5F.c line 749 in 
H5Fclose(): not a file ID
    major: Invalid arguments to routine
    minor: Inappropriate type


compile no error: g++ -c packageHdf5.cpp -I ../latest/include -L ../latest/lib 
-lhdf5 -lhdf5_cpp
link no error: g++ -o packageHdf5Run packageHdf5.o -I ../latest/include -L 
../latest/lib -lhdf5 -lhdf5_cpp
run error: ./packageHdf5Run    (error information as above)



My code:

#include <stdio.h>
#include <iostream>
#include <string>

#include "H5Cpp.h"
#include <H5File.h>
#include "hdf5.h"

#ifndef H5_NO_NAMESPACE
using namespace H5;
#endif

using namespace std;

int main(int argc, char* argv[])
{
            hid_t file_id = 
H5Fcreate("/home/tg2hpps/tg2hpps_main/src/packageHdf5/dsetddd.h5", 
H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);

            H5Fclose(file_id);
}


Thanks!




_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to