Блокировка файлов HDF с помощью h5py

У меня есть целая куча кода, взаимодействующего с файлами hdf через h5py. Код работает уже много лет. Недавно, с изменением среды Python, я получаю это новое сообщение об ошибке.

IOError: Unable to open file (unable to lock file, errno = 11, error message = 'Resource temporarily unavailable')

Что интересно, ошибка возникает периодически в одних местах и ​​постоянно в других. В местах, где это происходит регулярно, я просмотрел свой код и убедился, что к файлу не подключен другой экземпляр h5py и что последнее соединение было правильно сброшено и закрыто. Опять же, все это работало нормально до изменения среды.

Фрагменты из моей среды conda:

h5py 2.8.0 py27h470a237_0 conda-forge hdf4 4.2.13 0 conda-forge hdf5 1.10.1 2 conda-forge


person user2611761    schedule 21.06.2018    source источник
comment
Можете ли вы построить минимальный пример, который также показывает эту ошибку?   -  person Tom de Geus    schedule 25.06.2018
comment
Возможные источники проблемы: переполнение диска, общая файловая система, проблемы с правами доступа. Как упоминает @TomdeGeus, поможет минимальный пример!   -  person Pierre de Buyl    schedule 26.06.2018


Ответы (3)


Моя проблема! Не удалось закрыть файл непонятным способом. Интересно, что для разблокировки файла в некоторых случаях требовался перезапуск ipython, в других случаях — полная перезагрузка.

person user2611761    schedule 27.06.2018

с помощью h5py.File() один и тот же файл .h5 может быть открыт для чтения ("r") несколько раз. Но h5py не поддерживает более одного потока. Вы можете столкнуться с неправильными данными с несколькими одновременными считывателями.

person Machuck    schedule 08.08.2019

У меня был запущен другой процесс, о котором я не знал. Как я решил свою проблему:

  1. Использовал ps aux | grep myapp.py, чтобы найти номер процесса, в котором выполнялся myapp.py.
  2. Убейте процесс с помощью команды kill
  3. Беги снова
person Matheus Araujo    schedule 12.01.2021