What’s new in h5py 2.7.1

2.7.1 is the first bug-fix release in the 2.7.x series.

Bug fixes

  • GH903 Fixed critical issue with cyclic gc which resulted in segfaults
  • GH904 Avoid unaligned access fixing h5py on sparc64
  • GH883 Fixed compilation issues for some library locations
  • GH868 Fix deadlock between phil and the import lock in py2
  • GH841 Improve windows handling if filenames
  • GH874 Allow close to be called on file multiple times
  • GH867, GH872 Warn on loaded vs complied hdf5 version issues
  • GH902 Fix overflow computing size of dataset on windows
  • GH912 Do not mangle capitalization of filenames in error messages
  • GH842 Fix longdouble on ppc64le
  • GH862, GH916 Fix compounds structs with variable-size members

Fix h5py segfaulting on some Python 3 versions

Through an intersection of Python Issue 30484 and GH888, it was possible for the Python Garbage Collector to activate when closing h5py objects, which due to how dictionaries were iterated over in Python could cause a segfault. GH903 fixes the Garbage Collector activating whilst closing, whilst Python Issue 30484 had been fixed upstream (and backported to Python 3.3 onwards).

Avoid unaligned memory access in conversion functions

Some architectures (e.g. SPARC64) do not allow unaligned memory access, which can come up when copying packed structs. GH904 (by James Clarke) uses memcpy to avoid said unaligned memory access.