Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Resource temporarily unavailable" error while opening h5 files #960

Open
aroffringa opened this issue Aug 19, 2022 · 2 comments
Open

"Resource temporarily unavailable" error while opening h5 files #960

aroffringa opened this issue Aug 19, 2022 · 2 comments

Comments

@aroffringa
Copy link

In the following scenario I sometimes get an H5/pytables exception:

f = tables.Filters(complevel=complevel, complib=complib)
ho = tables.open_file(filename, filters=f, mode='w', IO_BUFFER_SIZE=1024*1024*10, BUFFER_TIMES=500)
# Do some updates
ho.close()
# Some conditions... then reopen:
ho = tables.open_file(h5parmFile, 'r+', IO_BUFFER_SIZE=1024*1024*10, BUFFER_TIMES=500)
# Do some updates
ho.close()
# More conditions, then another reopen:
ho = tables.open_file(h5parmFile, 'r+', IO_BUFFER_SIZE=1024*1024*10, BUFFER_TIMES=500)
# Do some updates
ho.close()

The third call to open_file sometimes results in the "Resource temporarily unavailable" error below. Strangely, the second never fails. On some platforms we don't get any errors, on others we do, which could be different version of pytables or hdf5. Generally the platforms where we see this error have newer software. It occurs at least with tables version 3.7.0, using python 3.8 and Ubuntu 22. Is this a known issue, or caused by me doing something incorrectly?

I noticed #888 , which mentions the same issue, but there the same file is opened from two processes. I make sure that I don't do that, and as the code above shows I explicitly call the close() function on the table before reopening. It's somewhat hard to make a minimal example, because changing the code seems to randomly make it disappear.

Traceback (most recent call last):
  File "/home/offringa/.local/bin/combine_h5parms.py", line 432, in <module>
    main(args.h51, args.h52, args.outh5, args.mode, reweight=args.reweight,
  File "/home/offringa/.local/bin/combine_h5parms.py", line 367, in main
    ho = h5parm(outh5parm, readonly=False)
  File "/home/offringa/.local/lib/python3.10/site-packages/losoto/h5parm.py", line 80, in __init__
    self.H = tables.open_file(h5parmFile, 'r+', IO_BUFFER_SIZE=1024*1024*10, BUFFER_TIMES=500)
  File "/home/offringa/.local/lib/python3.10/site-packages/tables/file.py", line 300, in open_file
    return File(filename, mode, title, root_uep, filters, **kwargs)
  File "/home/offringa/.local/lib/python3.10/site-packages/tables/file.py", line 750, in __init__
    self._g_new(filename, mode, **params)
  File "tables/hdf5extension.pyx", line 486, in tables.hdf5extension.File._g_new
tables.exceptions.HDF5ExtError: HDF5 error back trace

  File "H5F.c", line 620, in H5Fopen
    unable to open file
  File "H5VLcallback.c", line 3501, in H5VL_file_open
    failed to iterate over available VOL connector plugins
  File "H5PLpath.c", line 578, in H5PL__path_table_iterate
    can't iterate over plugins in plugin path '(null)'
  File "H5PLpath.c", line 620, in H5PL__path_table_iterate_process_path
    can't open directory: /usr/local/hdf5/lib/plugin
  File "H5VLcallback.c", line 3351, in H5VL__file_open
    open failed
  File "H5VLnative_file.c", line 97, in H5VL__native_file_open
    unable to open file
  File "H5Fint.c", line 1898, in H5F_open
    unable to lock the file
  File "H5FD.c", line 1625, in H5FD_lock
    driver lock request failed
  File "H5FDsec2.c", line 1002, in H5FD__sec2_lock
    unable to lock file, errno = 11, error message = 'Resource temporarily unavailable'

End of HDF5 error back trace
@avalentino
Copy link
Member

Dear @aroffringa, thanks for reporting.
It don't seems to be a known issue.
Typically this kind of intermittent problem are related to some external factor (like e.g. #957) or to threading (which seems not to be the case here).
Unfortunately I do not have a solution for you right now, but if you find a way to create a reproducible example let us know and we will look at it for sure.

@eric-burel
Copy link

eric-burel commented Nov 11, 2022

For me "/usr/local/hdf5/lib/plugin" doesn't exist, using Python 3.7, using latest version of tables ("*" in Pipfile), and pandas 1.0.5
I cannot find anyway to get it installed on Ubuntu, tried solutions in this thread (using a Python package) and in this one (installing some packages via apt), with no success.

This error seems to have appeared recently, but I can't tell which package is problematic here, it seems like an HDFS install issue.

I am working on a fresh machine using Ubuntu 20, so there was no previous install of HDFS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@avalentino @eric-burel @aroffringa and others