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

[ppc64le] Many tests are failing on linux IBM power9 machines #1222

Closed
kif opened this issue May 29, 2019 · 26 comments · Fixed by #1243
Closed

[ppc64le] Many tests are failing on linux IBM power9 machines #1222

kif opened this issue May 29, 2019 · 26 comments · Fixed by #1243

Comments

@kif
Copy link
Contributor

kif commented May 29, 2019

Hi,
I am facing many seg-faults when reading HDF5 files with h5py. Here are outcome of may investigations based on freshly built hdf5 (1.10.5). Note that all tests passed on the HDF5 side.

  • Operating System Ubuntu 18.04 (using gcc-8)
  • Python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0] on linux
  • Python from the system + virtualenv with cython&numpy pip-installed
  • h5py version: master and 2.9.0
  • HDF5 version: 1.10.5

While trying to read a float64-dataset of shape (4, 16384, 1024), uncompressed, unchunked I got this exception (from gdb):

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
__memcpy_power7 () at ../sysdeps/powerpc/powerpc64/power7/memcpy.S:392
392 ../sysdeps/powerpc/powerpc64/power7/memcpy.S: No such file or directory.

Note that the power7 is a big-endian architecture, while power9 is little endian, so no surprise this ends badly.
the full backtrace is:

#0  __memcpy_power7 () at ../sysdeps/powerpc/powerpc64/power7/memcpy.S:392
#1  0x00007ffed99485b8 in memcpy (__len=<optimized out>, __src=<optimized out>, __dest=0x7ffeb9512010) at /usr/include/powerpc64le-linux-gnu/bits/string_fortified.h:34
#2  H5D__scatter_mem (_buf=0x7ffeb9510010, nelmts=65536, iter=0x10c4cd10, space=0x10b59440, _tscat_buf=<optimized out>) at /home/test/HDF5/hdf5-1.10.5/src/H5Dscatgath.c:340
#3  H5D__scatter_mem (_tscat_buf=<optimized out>, space=0x10b59440, iter=0x10c4cd10, nelmts=<optimized out>, _buf=0x7ffeb9510010) at /home/test/HDF5/hdf5-1.10.5/src/H5Dscatgath.c:291
#4  0x00007ffed9948f04 in H5D__scatgath_read (io_info=0x7fffffffd770, type_info=<optimized out>, nelmts=<optimized out>, file_space=0x10b7c160, mem_space=0x10b59440)
    at /home/test/HDF5/hdf5-1.10.5/src/H5Dscatgath.c:567
#5  0x00007ffed9929720 in H5D__contig_read (io_info=<optimized out>, type_info=<optimized out>, nelmts=<optimized out>, file_space=<optimized out>, mem_space=<optimized out>, fm=<optimized out>)
    at /home/test/HDF5/hdf5-1.10.5/src/H5Dcontig.c:595
#6  0x00007ffed994356c in H5D__read (dataset=<optimized out>, mem_type_id=<optimized out>, mem_space=0x10b59440, file_space=0x10b7c160, buf=0x7ffeb9510010) at /home/test/HDF5/hdf5-1.10.5/src/H5Dio.c:600
#7  0x00007ffed9943a3c in H5Dread (dset_id=<optimized out>, mem_type_id=216172782113784169, mem_space_id=288230376151711753, file_space_id=288230376151711751, dxpl_id=720575940379279384, buf=0x7ffeb9510010)
    at /home/test/HDF5/hdf5-1.10.5/src/H5Dio.c:198
#8  0x00007ffed97051d0 in __pyx_f_4h5py_4defs_H5Dread (__pyx_v_dset_id=360287970189639680, __pyx_v_mem_type_id=216172782113784169, __pyx_v_mem_space_id=288230376151711753, 
    __pyx_v_file_space_id=288230376151711751, __pyx_v_plist_id=720575940379279384, __pyx_v_buf=0x7ffeb9510010) at /home/test/workspace/h5py/h5py/defs.c:5875
#9  0x00007ffff6404f0c in __pyx_f_4h5py_6_proxy_H5PY_H5Dread (__pyx_v_dset=<optimized out>, __pyx_v_mtype=<optimized out>, __pyx_v_mspace=<optimized out>, __pyx_v_fspace=<optimized out>, 
    __pyx_v_dxpl=<optimized out>, __pyx_v_buf=<optimized out>) at /home/test/workspace/h5py/h5py/_proxy.c:1881
#10 0x00007ffff6407554 in __pyx_f_4h5py_6_proxy_dset_rw (__pyx_v_dset=360287970189639680, __pyx_v_mtype=216172782113784169, __pyx_v_mspace=288230376151711753, __pyx_v_fspace=288230376151711751, 
    __pyx_v_dxpl=720575940379279384, __pyx_v_progbuf=0x7ffeb9510010, __pyx_v_read=<optimized out>) at /home/test/workspace/h5py/h5py/_proxy.c:2233
#11 0x00007ffff63d10ec in __pyx_pf_4h5py_3h5d_9DatasetID_read (__pyx_v_self=<optimized out>, __pyx_v_mspace=<optimized out>, __pyx_v_fspace=<optimized out>, __pyx_v_dxpl=<optimized out>, 
    __pyx_v_mtype=0x7ffff59663b8, __pyx_v_arr_obj=<optimized out>) at /home/test/workspace/h5py/h5py/h5d.c:3789
#12 __pyx_pw_4h5py_3h5d_9DatasetID_1read (__pyx_v_self=<optimized out>, __pyx_args=<optimized out>, __pyx_kwds=<optimized out>) at /home/test/workspace/h5py/h5py/h5d.c:3639
#13 0x00000000101b6438 in _PyCFunction_FastCallDict (func_obj=<built-in method read of h5py.h5d.DatasetID object at remote 0x7ffff5966308>, args=<optimized out>, nargs=<optimized out>, kwargs=<optimized out>)
    at ../Objects/methodobject.c:231
#14 0x000000001021d950 in _PyObject_FastCallDict (func=<built-in method read of h5py.h5d.DatasetID object at remote 0x7ffff5966308>, args=0x7ffff5966220, nargs=4, kwargs=<optimized out>)
    at ../Objects/abstract.c:2313
#15 0x000000001008151c in methoddescr_call (descr=0x7ffff65fc948, 
    args=(<h5py.h5d.DatasetID at remote 0x7ffff5966308>, <h5py.h5s.SpaceID at remote 0x7ffff59672c8>, <h5py.h5s.SpaceID at remote 0x7ffff5967278>, <numpy.ndarray at remote 0x7ffff5967300>, <h5py.h5t.TypeFloatID at remote 0x7ffff59663b8>), kwds={'dxpl': <h5py.h5p.PropDXID at remote 0x7ffff5a0b6d8>}) at ../Objects/descrobject.c:246
#16 0x00007ffed9754ffc in __Pyx_PyObject_Call (kw={'dxpl': <h5py.h5p.PropDXID at remote 0x7ffff5a0b6d8>}, 
    arg=(<h5py.h5d.DatasetID at remote 0x7ffff5966308>, <h5py.h5s.SpaceID at remote 0x7ffff59672c8>, <h5py.h5s.SpaceID at remote 0x7ffff5967278>, <numpy.ndarray at remote 0x7ffff5967300>, <h5py.h5t.TypeFloatID at remote 0x7ffff59663b8>), func=<method_descriptor at remote 0x7ffff65fc948>) at /home/test/workspace/h5py/h5py/_objects.c:9664
#17 __pyx_pf_4h5py_8_objects_9with_phil_wrapper (__pyx_v_kwds={'dxpl': <h5py.h5p.PropDXID at remote 0x7ffff5a0b6d8>}, 
    __pyx_v_args=(<h5py.h5d.DatasetID at remote 0x7ffff5966308>, <h5py.h5s.SpaceID at remote 0x7ffff59672c8>, <h5py.h5s.SpaceID at remote 0x7ffff5967278>, <numpy.ndarray at remote 0x7ffff5967300>, <h5py.h5t.TypeFloatID at remote 0x7ffff59663b8>), __pyx_self=<optimized out>) at /home/test/workspace/h5py/h5py/_objects.c:3593
#18 __pyx_pw_4h5py_8_objects_9with_phil_1wrapper (__pyx_self=<optimized out>, 
    __pyx_args=(<h5py.h5d.DatasetID at remote 0x7ffff5966308>, <h5py.h5s.SpaceID at remote 0x7ffff59672c8>, <h5py.h5s.SpaceID at remote 0x7ffff5967278>, <numpy.ndarray at remote 0x7ffff5967300>, <h5py.h5t.TypeFloatID at remote 0x7ffff59663b8>), __pyx_kwds=<optimized out>) at /home/test/workspace/h5py/h5py/_objects.c:3517
#19 0x00007ffed9749098 in __Pyx_CyFunction_CallMethod (func=<optimized out>, self=<cython_function_or_method at remote 0x7ffff6600100>, arg=<optimized out>, kw=<optimized out>)
    at /home/test/workspace/h5py/h5py/_objects.c:10731
#20 0x0000000010222558 in _PyObject_FastCallDict (kwargs=<optimized out>, nargs=<optimized out>, args=<optimized out>, func=<cython_function_or_method at remote 0x7ffff6600100>) at ../Objects/tupleobject.c:131
#21 _PyObject_FastCallKeywords (func=<cython_function_or_method at remote 0x7ffff6600100>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at ../Objects/abstract.c:2496
#22 0x00000000101111d4 in call_function (pp_stack=0x7fffffffe130, oparg=<optimized out>, kwnames=('dxpl',)) at ../Python/ceval.c:4861
#23 0x0000000010118094 in _PyEval_EvalFrameDefault (
    f=Frame 0x10c49d38, for file /home/test/venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py, line 574, in __getitem__ (self=<Dataset(_id=<h5py.h5d.DatasetID at remote 0x7ffff5966308>, _dcpl=<h5py.h5p.PropDCID at remote 0x7ffff75e84a8>, _dxpl=<h5py.h5p.PropDXID at remote 0x7ffff5a0b6d8>, _filters={}, _local=<_thread._local at remote 0x7ffff5966360>) at remote 0x7ffff75e9f60>, args=(<ellipsis at remote 0x104ca6b8>,), names=(), new_dtype=<numpy.dtype at remote 0x7ffff59d53f0>, mtype=<h5py.h5t.TypeFloatID at remote 0x7ffff59663b8>, mshape=(4, 16384, 1024), fspace=<h5py.h5s.SpaceID at remote 0x7ffff5967278>, selection=<SimpleSelection(_shape=(4, 16384, 1024), _id=<h5py.h5s.SpaceID at remote 0x7ffff5967278>, _sel=((0, 0, 0), (4, 16384, 1024), (1, 1, 1), (False, False, False)), _mshape=(...)) at remote 0x7ffff75e9f98>, arr=<numpy.ndarray at remote 0x7ffff5967300>, mspace=<h5py.h5s.SpaceID at remote 0x7ffff59672c8>, single_element=False), throwflag=<optimized out>) at ../Python/ceval.c:3351
#24 0x0000000010113cac in PyEval_EvalFrameEx (throwflag=0, 
    f=Frame 0x10c49d38, for file /home/test/venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py, line 574, in __getitem__ (self=<Dataset(_id=<h5py.h5d.DatasetID at remote 0x7ffff5966308>, _dcpl=<h5py.h5p.PropDCID at remote 0x7ffff75e84a8>, _dxpl=<h5py.h5p.PropDXID at remote 0x7ffff5a0b6d8>, _filters={}, _local=<_thread._local at remote 0x7ffff5966360>) at remote 0x7ffff75e9f60>, args=(<ellipsis at remote 0x104ca6b8>,), names=(), new_dtype=<numpy.dtype at remote 0x7ffff59d53f0>, mtype=<h5py.h5t.TypeFloatID at remote 0x7ffff59663b8>, mshape=(4, 16384, 1024), fspace=<h5py.h5s.SpaceID at remote 0x7ffff5967278>, selection=<SimpleSelection(_shape=(4, 16384, 1024), _id=<h5py.h5s.SpaceID at remote 0x7ffff5967278>, _sel=((0, 0, 0), (4, 16384, 1024), (1, 1, 1), (False, False, False)), _mshape=(...)) at remote 0x7ffff75e9f98>, arr=<numpy.ndarray at remote 0x7ffff5967300>, mspace=<h5py.h5s.SpaceID at remote 0x7ffff59672c8>, single_element=False)) at ../Python/ceval.c:4166
#25 _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>, kwargs=<optimized out>, 
    kwcount=<optimized out>, kwstep=2, defs=<optimized out>, defcount=<optimized out>, kwdefs=<optimized out>, closure=<optimized out>, name=<optimized out>, qualname=<optimized out>) at ../Python/ceval.c:4166
#26 0x00000000101ede04 in PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=<optimized out>, args=<optimized out>, locals=0x0, globals=<optimized out>, 
    _co=<optimized out>) at ../Python/ceval.c:4187
#27 function_call (func=<function at remote 0x7ffff6160840>, 
@kif
Copy link
Contributor Author

kif commented May 29, 2019

The test suite shows many errors. The float128 datatype is know to be unsupported on PPC which explains some errors (but not all)
Here is the outcome of the test suite:

=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.6.7, pytest-4.4.2, py-1.8.0, pluggy-0.11.0
rootdir: /home/test
collected 522 items                                                                                                                                                                                               

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_attribute_create.py ...                                                                                                                  [  0%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_dataset_getitem.py .................................................x....................................                                [ 17%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_dataset_swmr.py ssss..........                                                                                                           [ 19%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_datatype.py .....F.F.FF....                                                                                                              [ 22%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_deprecation.py .                                                                                                                         [ 22%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_dims_dimensionproxy.py .                                                                                                                 [ 22%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_file.py .................                                                                                                                [ 26%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_filters.py .s                                                                                                                            [ 26%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_threads.py ..                                                                                                                            [ 27%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_highlevel_vds.py F.FF..                                                                                                         [ 28%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_lowlevel_vds.py F.F                                                                                                             [ 28%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_virtual_source.py ................                                                                                              [ 31%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs.py .FFFF..........s                                                                                                               [ 34%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs_data.py ......F.............                                                                                                      [ 38%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_base.py .....                                                                                                                           [ 39%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py .........x......................Fssssss..s..F....F.........................x..FF.........F......FF....                       [ 59%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_datatype.py ..                                                                                                                          [ 59%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dimension_scales.py ....s................                                                                                               [ 63%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_file.py .............ss.....................s.........                                                                                  [ 72%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_file_image.py ..                                                                                                                        [ 72%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_group.py .................................ssssss...................................................                                     [ 90%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_h5.py .....                                                                                                                             [ 90%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_h5d_direct_chunk_write.py .                                                                                                             [ 91%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_h5f.py .....                                                                                                                            [ 92%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_h5p.py ......                                                                                                                           [ 93%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_h5t.py F...                                                                                                                             [ 94%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_objects.py ...                                                                                                                          [ 94%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_selections.py ....                                                                                                                      [ 95%]
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_slicing.py F...........F..F........                                                                                                     [100%]

==================================================================================================== FAILURES =====================================================================================================
__________________________________________________________________________________________ TestOffsets.test_aligned_data __________________________________________________________________________________________

self = <h5py.tests.hl.test_datatype.TestOffsets testMethod=test_aligned_data>

    def test_aligned_data(self):
        dt = np.dtype('i4,f8,i2', align=True)
        data = np.empty(10, dtype=dt)
    
        data['f0'] = np.array(np.random.randint(-100, 100, size=data.size),
                dtype='i4')
        data['f1'] = np.random.rand(data.size)
        data['f2'] = np.array(np.random.randint(-100, 100, size=data.size),
                dtype='i2')
    
        fname = self.mktemp()
    
        with h5py.File(fname, 'w') as f:
>           f['data'] = data

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_datatype.py:194: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:385: in __setitem__
    ds = self.create_dataset(None, data=obj, dtype=base.guess_dtype(obj))
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:136: in create_dataset
    dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:118: in make_new_dset
    tid = h5t.py_create(dtype, logical=1)
h5py/h5t.pyx:1633: in h5py.h5t.py_create
    ???
h5py/h5t.pyx:1655: in h5py.h5t.py_create
    ???
h5py/h5t.pyx:1677: in h5py.h5t.py_create
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   TypeError: Enforced alignment not compatible with HDF5 type

h5py/h5t.pyx:1593: TypeError
______________________________________________________________________________________ TestOffsets.test_compound_robustness _______________________________________________________________________________________

self = <h5py.tests.hl.test_datatype.TestOffsets testMethod=test_compound_robustness>

    def test_compound_robustness(self):
        #make an out of order compound type with gaps in it, and larger itemsize than minimum
        # Idea is to be robust to type descriptions we *could* get out of HDF5 files, from custom descriptions
        # of types in addition to numpy's flakey history on unaligned fields with non-standard or padded layouts.
        fields = [
            ('f0', np.float64, 25),
            ('f1', np.uint64, 9),
            ('f2', np.uint32, 0),
            ('f3', np.uint16, 5)
        ]
        lastfield = fields[np.argmax([ x[2] for x in fields ])]
        itemsize = lastfield[2] + np.dtype(lastfield[1]).itemsize + 6
        extract_index = lambda index, sequence: [ x[index] for x in sequence ]
    
        dt = np.dtype({
            'names' : extract_index(0, fields),
            'formats' : extract_index(1, fields),
            'offsets' : extract_index(2, fields),
            #'aligned': False, - already defaults to False
            'itemsize': itemsize
        })
    
        self.assertTrue(dt.itemsize == itemsize)
        data = np.empty(10, dtype=dt)
    
        #don't trust numpy struct handling , keep fields out of band incase content insertion is erroneous
        # yes... this has also been known to happen.
        f1 = np.array([1 + i * 4 for i in range(data.shape[0])], dtype=dt.fields['f1'][0])
        f2 = np.array([2 + i * 4 for i in range(data.shape[0])], dtype=dt.fields['f2'][0])
        f3 = np.array([3 + i * 4 for i in range(data.shape[0])], dtype=dt.fields['f3'][0])
        f0c = 3.14
        data['f0'] = f0c
        data['f3'] = f3
        data['f1'] = f1
        data['f2'] = f2
    
        #numpy consistency checks
        self.assertTrue(np.all(data['f0'] == f0c))
        self.assertArrayEqual(data['f3'], f3)
        self.assertArrayEqual(data['f1'], f1)
        self.assertArrayEqual(data['f2'], f2)
    
        fname = self.mktemp()
    
        with h5py.File(fname, 'w') as fd:
            fd.create_dataset('data', data=data)
    
        with h5py.File(fname, 'r') as fd:
            readback = fd['data']
>           self.assertTrue( readback.dtype == dt )
E           AssertionError: False is not true

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_datatype.py:249: AssertionError
______________________________________________________________________________________ TestOffsets.test_float_round_tripping ______________________________________________________________________________________

self = <h5py.tests.hl.test_datatype.TestOffsets testMethod=test_float_round_tripping>

    def test_float_round_tripping(self):
        dtypes = set(f for f in np.typeDict.values()
                     if (np.issubdtype(f, np.floating) or
                         np.issubdtype(f, np.complexfloating))
                     )
    
        dtype_dset_map = {str(j): d
                          for j, d in enumerate(dtypes)}
    
        fname = self.mktemp()
    
        with h5py.File(fname, 'w') as f:
            for n, d in dtype_dset_map.items():
                data = np.arange(10,
                                 dtype=d)
    
                f.create_dataset(n, data=data)
    
        with h5py.File(fname, 'r') as f:
            for n, d in dtype_dset_map.items():
                ldata = f[n][:]
>               self.assertEqual(ldata.dtype, d)
E               AssertionError: dtype('<f16') != <class 'numpy.float64'>

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_datatype.py:297: AssertionError
______________________________________________________________________________________ TestOffsets.test_out_of_order_offsets ______________________________________________________________________________________

self = <h5py.tests.hl.test_datatype.TestOffsets testMethod=test_out_of_order_offsets>

    def test_out_of_order_offsets(self):
        dt = np.dtype({
            'names' : ['f1', 'f2', 'f3'],
            'formats' : ['<f4', '<i4', '<f8'],
            'offsets' : [0, 16, 8]
        })
        data = np.empty(10, dtype=dt)
        data['f1'] = np.random.rand(data.size)
        data['f2'] = np.random.randint(-10, 11, data.size)
        data['f3'] = np.random.rand(data.size)*-1
    
        fname = self.mktemp()
    
        with h5py.File(fname, 'w') as fd:
            fd.create_dataset('data', data=data)
    
        with h5py.File(fname, 'r') as fd:
>           self.assertArrayEqual(fd['data'], data)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_datatype.py:274: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <h5py.tests.hl.test_datatype.TestOffsets testMethod=test_out_of_order_offsets>, dset = <Closed HDF5 dataset>
arr = array([(0.65428066, 10, -0.32014672), (0.4456966 ,  9, -0.90192723),
       (0.43885425, -8, -0.98287924), (0.5830624 ...0.07587633)],
      dtype={'names':['f1','f2','f3'], 'formats':['<f4','<i4','<f8'], 'offsets':[0,16,8], 'itemsize':20})
message = '', precision = 1e-05

    def assertArrayEqual(self, dset, arr, message=None, precision=None):
        """ Make sure dset and arr have the same shape, dtype and contents, to
            within the given precision.
    
            Note that dset may be a NumPy array or an HDF5 dataset.
        """
        if precision is None:
            precision = 1e-5
        if message is None:
            message = ''
        else:
            message = ' (%s)' % message
    
        if np.isscalar(dset) or np.isscalar(arr):
            assert np.isscalar(dset) and np.isscalar(arr), \
                'Scalar/array mismatch ("%r" vs "%r")%s' % (dset, arr, message)
            assert dset - arr < precision, \
                "Scalars differ by more than %.3f%s" % (precision, message)
            return
    
        assert dset.shape == arr.shape, \
            "Shape mismatch (%s vs %s)%s" % (dset.shape, arr.shape, message)
        assert dset.dtype == arr.dtype, \
>           "Dtype mismatch (%s vs %s)%s" % (dset.dtype, arr.dtype, message)
E       AssertionError: Dtype mismatch ({'names':['f1','f2','f3'], 'formats':['<f4','<i4','<f16'], 'offsets':[0,24,8], 'itemsize':28} vs {'names':['f1','f2','f3'], 'formats':['<f4','<i4','<f8'], 'offsets':[0,16,8], 'itemsize':20})

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/common.py:117: AssertionError
____________________________________________________________________________________ TestEigerHighLevel.test_eiger_high_level _____________________________________________________________________________________

self = <h5py.tests.hl.test_vds.test_highlevel_vds.TestEigerHighLevel testMethod=test_eiger_high_level>

    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.fname = ['raw_file_1.h5', 'raw_file_2.h5', 'raw_file_3.h5']
        for k, outfile in enumerate(self.fname):
            filename = osp.join(self.working_dir, outfile)
            f = h5.File(filename, 'w')
>           f['data'] = np.ones((20, 200, 200)) * k

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_highlevel_vds.py:25: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:385: in __setitem__
    ds = self.create_dataset(None, data=obj, dtype=base.guess_dtype(obj))
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:136: in create_dataset
    dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:170: in make_new_dset
    dset_id.write(h5s.ALL, h5s.ALL, data)
h5py/_objects.pyx:54: in h5py._objects.with_phil.wrapper
    ???
h5py/_objects.pyx:55: in h5py._objects.with_phil.wrapper
    ???
h5py/h5d.pyx:221: in h5py.h5d.DatasetID.write
    ???
h5py/_proxy.pyx:132: in h5py._proxy.dset_rw
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   OSError: Can't write data (file write failed: time = Wed May 29 09:34:09 2019
E   , filename = '/tmp/tmpce0dj4y0/raw_file_2.h5', file descriptor = 8, errno = 14, error message = 'Bad address', buf = 0x44d26ed0, total write size = 6248448, bytes this sub-write = 6248448, bytes actually written = 18446744073709551615, offset = 0)

h5py/_proxy.pyx:93: OSError
_________________________________________________________________________________ TestPercivalHighLevel.test_percival_high_level __________________________________________________________________________________

self = <h5py.tests.hl.test_vds.test_highlevel_vds.TestPercivalHighLevel testMethod=test_percival_high_level>

    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.fname = ['raw_file_1.h5','raw_file_2.h5','raw_file_3.h5']
        k = 0
        for outfile in self.fname:
            filename = osp.join(self.working_dir, outfile)
            f = h5.File(filename,'w')
>           f['data'] = np.ones((20,200,200))*k

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_highlevel_vds.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:385: in __setitem__
    ds = self.create_dataset(None, data=obj, dtype=base.guess_dtype(obj))
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:136: in create_dataset
    dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:170: in make_new_dset
    dset_id.write(h5s.ALL, h5s.ALL, data)
h5py/_objects.pyx:54: in h5py._objects.with_phil.wrapper
    ???
h5py/_objects.pyx:55: in h5py._objects.with_phil.wrapper
    ???
h5py/h5d.pyx:221: in h5py.h5d.DatasetID.write
    ???
h5py/_proxy.pyx:132: in h5py._proxy.dset_rw
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   OSError: Can't write data (file write failed: time = Wed May 29 09:34:09 2019
E   , filename = '/tmp/tmpd7ew9xg6/raw_file_1.h5', file descriptor = 10, errno = 14, error message = 'Bad address', buf = 0x455a16e0, total write size = 3758080, bytes this sub-write = 3758080, bytes actually written = 18446744073709551615, offset = 0)

h5py/_proxy.pyx:93: OSError
_____________________________________________________________________________ TestPercivalHighLevel.test_percival_source_from_dataset _____________________________________________________________________________

self = <h5py.tests.hl.test_vds.test_highlevel_vds.TestPercivalHighLevel testMethod=test_percival_source_from_dataset>

    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.fname = ['raw_file_1.h5','raw_file_2.h5','raw_file_3.h5']
        k = 0
        for outfile in self.fname:
            filename = osp.join(self.working_dir, outfile)
            f = h5.File(filename,'w')
>           f['data'] = np.ones((20,200,200))*k

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_highlevel_vds.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:385: in __setitem__
    ds = self.create_dataset(None, data=obj, dtype=base.guess_dtype(obj))
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:136: in create_dataset
    dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:170: in make_new_dset
    dset_id.write(h5s.ALL, h5s.ALL, data)
h5py/_objects.pyx:54: in h5py._objects.with_phil.wrapper
    ???
h5py/_objects.pyx:55: in h5py._objects.with_phil.wrapper
    ???
h5py/h5d.pyx:221: in h5py.h5d.DatasetID.write
    ???
h5py/_proxy.pyx:132: in h5py._proxy.dset_rw
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   OSError: Can't write data (file write failed: time = Wed May 29 09:34:09 2019
E   , filename = '/tmp/tmpx6ilupf5/raw_file_1.h5', file descriptor = 11, errno = 14, error message = 'Bad address', buf = 0x459dcce0, total write size = 6248448, bytes this sub-write = 6248448, bytes actually written = 18446744073709551615, offset = 0)

h5py/_proxy.pyx:93: OSError
_____________________________________________________________________________________ TestEigerLowLevel.test_eiger_low_level ______________________________________________________________________________________

self = <h5py.tests.hl.test_vds.test_lowlevel_vds.TestEigerLowLevel testMethod=test_eiger_low_level>

    def setUp(self):
        self.working_dir = tempfile.mkdtemp()
        self.fname = ['raw_file_1.h5', 'raw_file_2.h5', 'raw_file_3.h5']
        k = 0
        for outfile in self.fname:
            filename = self.working_dir + outfile
            f = h5.File(filename, 'w')
>           f['data'] = np.ones((20, 200, 200))*k

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_lowlevel_vds.py:23: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:385: in __setitem__
    ds = self.create_dataset(None, data=obj, dtype=base.guess_dtype(obj))
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:136: in create_dataset
    dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:170: in make_new_dset
    dset_id.write(h5s.ALL, h5s.ALL, data)
h5py/_objects.pyx:54: in h5py._objects.with_phil.wrapper
    ???
h5py/_objects.pyx:55: in h5py._objects.with_phil.wrapper
    ???
h5py/h5d.pyx:221: in h5py.h5d.DatasetID.write
    ???
h5py/_proxy.pyx:132: in h5py._proxy.dset_rw
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   OSError: Can't write data (file write failed: time = Wed May 29 09:34:09 2019
E   , filename = '/tmp/tmpfbrbqrzzraw_file_1.h5', file descriptor = 12, errno = 14, error message = 'Bad address', buf = 0x460782e0, total write size = 6248448, bytes this sub-write = 6248448, bytes actually written = 18446744073709551615, offset = 0)

h5py/_proxy.pyx:93: OSError
__________________________________________________________________________________ TestPercivalLowLevel.test_percival_low_level ___________________________________________________________________________________

self = <h5py.tests.hl.test_vds.test_lowlevel_vds.TestPercivalLowLevel testMethod=test_percival_low_level>

    def test_percival_low_level(self):
        self.outfile = self.working_dir + 'percival.h5'
        with h5.File(self.outfile, 'w', libver='latest') as f:
            vdset_shape = (1,200,200)
            num = h5.h5s.UNLIMITED
            vdset_max_shape = (num,)+vdset_shape[1:]
            virt_dspace = h5.h5s.create_simple(vdset_shape, vdset_max_shape)
            dcpl = h5.h5p.create(h5.h5p.DATASET_CREATE)
            dcpl.set_fill_value(np.array([-1]))
            # Create the source dataset dataspace
            k = 0
            for foo in self.fname:
                in_data = h5.File(foo, 'r')['data']
                src_shape = in_data.shape
                max_src_shape = (num,)+src_shape[1:]
                in_data.file.close()
                src_dspace = h5.h5s.create_simple(src_shape, max_src_shape)
                # Select the source dataset hyperslab
                src_dspace.select_hyperslab(start=(0, 0, 0),
                                            stride=(1,1,1),
                                            count=(num, 1, 1),
                                            block=(1,)+src_shape[1:])
    
                virt_dspace.select_hyperslab(start=(k, 0, 0),
                                             stride=(4,1,1),
                                             count=(num, 1, 1),
                                             block=(1,)+src_shape[1:])
    
                dcpl.set_virtual(virt_dspace, foo.encode('utf-8'), b'data', src_dspace)
                k+=1
    
            # Create the virtual dataset
            dset = h5.h5d.create(f.id, name=b"data", tid=h5.h5t.NATIVE_INT16, space=virt_dspace, dcpl=dcpl)
    
            f = h5.File(self.outfile,'r')
            sh = f['data'].shape
            line = f['data'][:8,100,100]
            foo = np.array(2*list(range(4)))
            f.close()
            self.assertEqual(sh,(79,200,200),)
>           np.testing.assert_array_equal(line,foo)
E           AssertionError: 
E           Arrays are not equal
E           
E           Mismatch: 75%
E           Max absolute difference: 3
E           Max relative difference: nan
E            x: array([0, 2, 4, 6, 0, 2, 4, 6], dtype=int16)
E            y: array([0, 1, 2, 3, 0, 1, 2, 3])

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_vds/test_lowlevel_vds.py:270: AssertionError
_____________________________________________________________________________________________ TestAccess.test_create ______________________________________________________________________________________________

self = <h5py.tests.old.test_attrs.TestAccess testMethod=test_create>

    def test_create(self):
        """ Attribute creation by direct assignment """
        self.f.attrs['a'] = 4.0
        self.assertEqual(list(self.f.attrs.keys()), ['a'])
>       self.assertEqual(self.f.attrs['a'], 4.0)
E       AssertionError: 4.0 != 4.0

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs.py:57: AssertionError
____________________________________________________________________________________________ TestAccess.test_overwrite ____________________________________________________________________________________________

self = <h5py.tests.old.test_attrs.TestAccess testMethod=test_overwrite>

    def test_overwrite(self):
        """ Attributes are silently overwritten """
        self.f.attrs['a'] = 4.0
        self.f.attrs['a'] = 5.0
>       self.assertEqual(self.f.attrs['a'], 5.0)
E       AssertionError: 5.0 != 5.0

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs.py:63: AssertionError
______________________________________________________________________________________________ TestAccess.test_rank _______________________________________________________________________________________________

self = <h5py.tests.old.test_attrs.TestAccess testMethod=test_rank>

    def test_rank(self):
        """ Attribute rank is preserved """
        self.f.attrs['a'] = (4.0, 5.0)
        self.assertEqual(self.f.attrs['a'].shape, (2,))
>       self.assertArrayEqual(self.f.attrs['a'], np.array((4.0,5.0)))

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs.py:69: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <h5py.tests.old.test_attrs.TestAccess testMethod=test_rank>, dset = array([4.00000000e+000, 5.56206245e+180], dtype=float128), arr = array([4., 5.]), message = '', precision = 1e-05

    def assertArrayEqual(self, dset, arr, message=None, precision=None):
        """ Make sure dset and arr have the same shape, dtype and contents, to
            within the given precision.
    
            Note that dset may be a NumPy array or an HDF5 dataset.
        """
        if precision is None:
            precision = 1e-5
        if message is None:
            message = ''
        else:
            message = ' (%s)' % message
    
        if np.isscalar(dset) or np.isscalar(arr):
            assert np.isscalar(dset) and np.isscalar(arr), \
                'Scalar/array mismatch ("%r" vs "%r")%s' % (dset, arr, message)
            assert dset - arr < precision, \
                "Scalars differ by more than %.3f%s" % (precision, message)
            return
    
        assert dset.shape == arr.shape, \
            "Shape mismatch (%s vs %s)%s" % (dset.shape, arr.shape, message)
        assert dset.dtype == arr.dtype, \
>           "Dtype mismatch (%s vs %s)%s" % (dset.dtype, arr.dtype, message)
E       AssertionError: Dtype mismatch (float128 vs float64)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/common.py:117: AssertionError
_____________________________________________________________________________________________ TestAccess.test_single ______________________________________________________________________________________________

self = <h5py.tests.old.test_attrs.TestAccess testMethod=test_single>

    def test_single(self):
        """ Attributes of shape (1,) don't become scalars """
        self.f.attrs['a'] = np.ones((1,))
        out = self.f.attrs['a']
        self.assertEqual(out.shape, (1,))
>       self.assertEqual(out[()], 1)
E       AssertionError: array([1.], dtype=float128) != 1

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs.py:76: AssertionError
______________________________________________________________________________________________ TestTypes.test_float _______________________________________________________________________________________________

self = <h5py.tests.old.test_attrs_data.TestTypes testMethod=test_float>

    def test_float(self):
        """ Storage of floating point types """
        dtypes = tuple(np.dtype(x) for x in ('<f4','>f4','<f8','>f8'))
    
        for dt in dtypes:
            data = np.ndarray((1,), dtype=dt)
            data[...] = 42.3
            self.f.attrs['x'] = data
            out = self.f.attrs['x']
>           self.assertEqual(out.dtype, dt)
E           AssertionError: dtype('<f16') != dtype('float64')

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_attrs_data.py:112: AssertionError
_________________________________________________________________________________________ TestCreateNamedType.test_named __________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestCreateNamedType testMethod=test_named>

    def test_named(self):
        """ Named type object works and links the dataset to type """
        self.f['type'] = np.dtype('f8')
        dset = self.f.create_dataset('x', (100,), dtype=self.f['type'])
>       self.assertEqual(dset.dtype, np.dtype('f8'))
E       AssertionError: dtype('<f16') != dtype('float64')

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:282: AssertionError
________________________________________________________________________________________ TestCreateScaleOffset.test_float _________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestCreateScaleOffset testMethod=test_float>

    def test_float(self):
        """ Scaleoffset filter works for floating point data """
    
        scalefac = 4
        shape = (100, 300)
        range = 20*10**scalefac
        testdata = (np.random.rand(*shape)-0.5)*range
    
>       dset = self.f.create_dataset('foo', shape, dtype=float, scaleoffset=scalefac)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:450: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/group.py:136: in create_dataset
    dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds)
venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:167: in make_new_dset
    dset_id = h5d.create(parent.id, None, tid, sid, dcpl=dcpl)
h5py/_objects.pyx:54: in h5py._objects.with_phil.wrapper
    ???
h5py/_objects.pyx:55: in h5py._objects.with_phil.wrapper
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   ValueError: Unable to create dataset (cannot find matched memory dataype)

h5py/h5d.pyx:79: ValueError
___________________________________________________________________________________________ TestExternal.test_external ____________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestExternal testMethod=test_external>

    def test_external(self):
        """ Create and access an external dataset """
    
        shape = (6, 100)
        testdata = np.random.random(shape)
    
        # create a dataset in an external file and set it
        ext_file = self.mktemp()
        external = [(ext_file, 0, h5f.UNLIMITED)]
        dset = self.f.create_dataset('foo', shape, dtype=testdata.dtype, external=external)
        dset[...] = testdata
    
        assert dset.external is not None
    
        # verify file was created, and size is correct
        import os
        statinfo = os.stat(ext_file)
>       assert statinfo.st_size == testdata.nbytes
E       AssertionError: assert 9600 == 4800
E        +  where 9600 = os.stat_result(st_mode=33204, st_ino=5505338, st_dev=64768, st_nlink=1, st_uid=1000, st_gid=1000, st_size=9600, st_atime=1559115249, st_mtime=1559115249, st_ctime=1559115249).st_size
E        +  and   4800 = array([[3.85033613e-01, 4.85648178e-02, 6.48607930e-01, 3.99243283e-01,\n        8.59741748e-01, 7.34762945e-01, 1.0829...70958615e-01, 3.67860717e-01, 8.51173066e-01,\n        7.68509940e-01, 5.67494235e-01, 5.97889544e-01, 7.98436806e-01]]).nbytes

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:553: AssertionError
____________________________________________________________________________________________ TestCompound.test_assign _____________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestCompound testMethod=test_assign>

    def test_assign(self):
        dt = np.dtype( [ ('weight', (np.float64, 3)),
                         ('endpoint_type', np.uint8), ] )
    
        testdata = np.ndarray((16,), dtype=dt)
        for key in dt.fields:
            testdata[key] = np.random.random(size=testdata[key].shape)*100
    
        ds = self.f.create_dataset('test', (16,), dtype=dt)
        for key in dt.fields:
            ds[key] = testdata[key]
    
        outdata = self.f['test'][...]
    
>       self.assertTrue(np.all(outdata == testdata))
E       AssertionError: False is not true

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:895: AssertionError
______________________________________________________________________________________________ TestCompound.test_rt _______________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestCompound testMethod=test_rt>

    def test_rt(self):
        """ Compound types are read back in correct order (issue 236)"""
    
        dt = np.dtype( [ ('weight', np.float64),
                             ('cputime', np.float64),
                             ('walltime', np.float64),
                             ('parents_offset', np.uint32),
                             ('n_parents', np.uint32),
                             ('status', np.uint8),
                             ('endpoint_type', np.uint8), ] )
    
        testdata = np.ndarray((16,), dtype=dt)
        for key in dt.fields:
            testdata[key] = np.random.random((16,))*100
    
        self.f['test'] = testdata
        outdata = self.f['test'][...]
>       self.assertTrue(np.all(outdata == testdata))
E       AssertionError: False is not true

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:878: AssertionError
_____________________________________________________________________________________________ TestAstype.test_astype ______________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestAstype testMethod=test_astype>

    def test_astype(self):
    
        dset = self.f.create_dataset('x', (100,), dtype='i2')
        dset[...] = np.arange(100)
        with dset.astype('f8'):
            self.assertEqual(dset[...].dtype, np.dtype('f8'))
>           self.assertTrue(np.all(dset[...] == np.arange(100)))
E           AssertionError: False is not true

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:1028: AssertionError
__________________________________________________________________________________________ TestVlen.test_numpy_float64_2 __________________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestVlen testMethod=test_numpy_float64_2>

    def test_numpy_float64_2(self):
        np_dt = np.float64
>       self._help_float_testing(np_dt)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:1165: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:1134: in _help_float_testing
    self.assertArrayEqual(array_0, ds[0])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <h5py.tests.old.test_dataset.TestVlen testMethod=test_numpy_float64_2>, dset = array([ 1.,  2., 30.]), arr = array([ 1.,  2., 30.], dtype=float128), message = '', precision = 1e-05

    def assertArrayEqual(self, dset, arr, message=None, precision=None):
        """ Make sure dset and arr have the same shape, dtype and contents, to
            within the given precision.
    
            Note that dset may be a NumPy array or an HDF5 dataset.
        """
        if precision is None:
            precision = 1e-5
        if message is None:
            message = ''
        else:
            message = ' (%s)' % message
    
        if np.isscalar(dset) or np.isscalar(arr):
            assert np.isscalar(dset) and np.isscalar(arr), \
                'Scalar/array mismatch ("%r" vs "%r")%s' % (dset, arr, message)
            assert dset - arr < precision, \
                "Scalars differ by more than %.3f%s" % (precision, message)
            return
    
        assert dset.shape == arr.shape, \
            "Shape mismatch (%s vs %s)%s" % (dset.shape, arr.shape, message)
        assert dset.dtype == arr.dtype, \
>           "Dtype mismatch (%s vs %s)%s" % (dset.dtype, arr.dtype, message)
E       AssertionError: Dtype mismatch (float64 vs float128)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/common.py:117: AssertionError
_____________________________________________________________________________________ TestVlen.test_numpy_float64_from_dtype ______________________________________________________________________________________

self = <h5py.tests.old.test_dataset.TestVlen testMethod=test_numpy_float64_from_dtype>

    def test_numpy_float64_from_dtype(self):
        np_dt = np.dtype('float64')
>       self._help_float_testing(np_dt)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:1161: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:1134: in _help_float_testing
    self.assertArrayEqual(array_0, ds[0])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <h5py.tests.old.test_dataset.TestVlen testMethod=test_numpy_float64_from_dtype>, dset = array([ 1.,  2., 30.]), arr = array([ 1.,  2., 30.], dtype=float128), message = '', precision = 1e-05

    def assertArrayEqual(self, dset, arr, message=None, precision=None):
        """ Make sure dset and arr have the same shape, dtype and contents, to
            within the given precision.
    
            Note that dset may be a NumPy array or an HDF5 dataset.
        """
        if precision is None:
            precision = 1e-5
        if message is None:
            message = ''
        else:
            message = ' (%s)' % message
    
        if np.isscalar(dset) or np.isscalar(arr):
            assert np.isscalar(dset) and np.isscalar(arr), \
                'Scalar/array mismatch ("%r" vs "%r")%s' % (dset, arr, message)
            assert dset - arr < precision, \
                "Scalars differ by more than %.3f%s" % (precision, message)
            return
    
        assert dset.shape == arr.shape, \
            "Shape mismatch (%s vs %s)%s" % (dset.shape, arr.shape, message)
        assert dset.dtype == arr.dtype, \
>           "Dtype mismatch (%s vs %s)%s" % (dset.dtype, arr.dtype, message)
E       AssertionError: Dtype mismatch (float64 vs float128)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/common.py:117: AssertionError
_____________________________________________________________________________________ TestCompound.test_out_of_order_offsets ______________________________________________________________________________________

self = <h5py.tests.old.test_h5t.TestCompound testMethod=test_out_of_order_offsets>

    def test_out_of_order_offsets(self):
        size = 20
        type_dict = {
            'names': ['f1', 'f2', 'f3'],
            'formats': ['<f4', '<i4', '<f8'],
            'offsets': [0, 16, 8]
        }
    
        expected_dtype = np.dtype(type_dict)
    
        tid = h5t.create(h5t.COMPOUND, size)
        for name, offset, dt in zip(
                type_dict["names"], type_dict["offsets"], type_dict["formats"]
        ):
            tid.insert(
                name.encode("utf8") if isinstance(name, text_type) else name,
                offset,
>               h5t.py_create(dt)
            )

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_h5t.py:58: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
h5py/_objects.pyx:54: in h5py._objects.with_phil.wrapper
    ???
h5py/_objects.pyx:55: in h5py._objects.with_phil.wrapper
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

>   ???
E   ValueError: Unable to insert member (member overlaps with another member)

h5py/h5t.pyx:1173: ValueError
_________________________________________________________________________________________ TestSingleElement.test_compound _________________________________________________________________________________________

self = <h5py.tests.old.test_slicing.TestSingleElement testMethod=test_compound>

    def test_compound(self):
        """ Compound scalar is numpy.void, not tuple (issue 135) """
        dt = np.dtype([('a','i4'),('b','f8')])
        v = np.ones((4,), dtype=dt)
        dset = self.f.create_dataset('foo', (4,), data=v)
>       self.assertEqual(dset[0], v[0])
E       AssertionError: (1, 1.) != (1, 1.)

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_slicing.py:77: AssertionError
___________________________________________________________________________________________ TestArraySlicing.test_read ____________________________________________________________________________________________

self = <h5py.tests.old.test_slicing.TestArraySlicing testMethod=test_read>

    def test_read(self):
        """ Read arrays tack array dimensions onto end of shape tuple """
        dt = np.dtype('(3,)f8')
        dset = self.f.create_dataset('x',(10,),dtype=dt)
        self.assertEqual(dset.shape, (10,))
>       self.assertEqual(dset.dtype, dt)
E       AssertionError: dtype(('<f16', (3,))) != dtype(('<f8', (3,)))

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_slicing.py:164: AssertionError
_______________________________________________________________________________________ TestArraySlicing.test_write_element _______________________________________________________________________________________

self = <h5py.tests.old.test_slicing.TestArraySlicing testMethod=test_write_element>

    def test_write_element(self):
        """ Write a single element to the array
    
        Issue 211.
        """
        dt = np.dtype('(3,)f8')
        dset = self.f.create_dataset('x', (10,), dtype=dt)
    
        data = np.array([1,2,3.0])
        dset[4] = data
    
        out = dset[4]
>       self.assertTrue(np.all(out == data))
E       AssertionError: False is not true

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_slicing.py:203: AssertionError
================================================================================================ warnings summary =================================================================================================
venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/hl/test_dataset_getitem.py::Test1DZeroFloat::test_mask
  /home/test/venv-kieffer_system/lib/python3.6/site-packages/h5py/_hl/dataset.py:534: DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.
    if args == (Ellipsis,) or args == tuple():

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py::TestCompound::test_assign
  /home/test/venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:895: FutureWarning: elementwise == comparison failed and returning scalar instead; this will raise an error or perform elementwise comparison in the future.
    self.assertTrue(np.all(outdata == testdata))

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py::TestCompound::test_rt
  /home/test/venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_dataset.py:878: FutureWarning: elementwise == comparison failed and returning scalar instead; this will raise an error or perform elementwise comparison in the future.
    self.assertTrue(np.all(outdata == testdata))

venv-kieffer_system/lib/python3.6/site-packages/h5py/tests/old/test_slicing.py::TestSingleElement::test_compound
  /usr/lib/python3.6/unittest/case.py:819: FutureWarning: elementwise == comparison failed and returning scalar instead; this will raise an error or perform elementwise comparison in the future.
    if not first == second:

-- Docs: https://docs.pytest.org/en/latest/warnings.html
==================================================================== 26 failed, 470 passed, 23 skipped, 3 xfailed, 4 warnings in 2.36 seconds =====================================================================

@takluyver
Copy link
Member

The .../power7/memcpy.S file looks like it's part of glibc, so I doubt that folder name points to a bug in h5py:

https://github.com/lattera/glibc/blob/master/sysdeps/powerpc/powerpc64/power7/memcpy.S

@kif
Copy link
Contributor Author

kif commented Jun 3, 2019 via email

@takluyver
Copy link
Member

Also, this looks similar to #1164, though I haven't looked through all the failures to see if they're the same.

@kif
Copy link
Contributor Author

kif commented Jun 3, 2019 via email

@kif
Copy link
Contributor Author

kif commented Jun 4, 2019

I confirm there is no "seg-fault" when running the test-suite on h5py 2.8 (2 tests are failing) . There is a regression in 2.9 and in the master branch.
For info, here is the report of the test-suite:

ERROR: test_exc (h5py.tests.old.test_group.TestLen)
len() on closed group gives ValueError
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/test/HDF5/h5py-2.8.0/build/lib.linux-ppc64le-3.6/h5py/tests/old/test_group.py", line 302, in test_exc
    len(self.f)
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/home/test/HDF5/h5py-2.8.0/build/lib.linux-ppc64le-3.6/h5py/_hl/group.py", line 318, in __len__
    return self.id.get_num_objs()
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py/h5g.pyx", line 331, in h5py.h5g.GroupID.get_num_objs
TypeError: Not a location id (invalid object ID)

======================================================================
ERROR: test_force_swmr_mode_on_raises (h5py.tests.hl.test_dataset_swmr.TestDatasetSwmrRead)
Verify when reading a file cannot be forcibly switched to swmr mode.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/test/HDF5/h5py-2.8.0/build/lib.linux-ppc64le-3.6/h5py/tests/hl/test_dataset_swmr.py", line 75, in test_force_swmr_mode_on_raises
    self.f.swmr_mode = True
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/home/test/HDF5/h5py-2.8.0/build/lib.linux-ppc64le-3.6/h5py/_hl/files.py", line 268, in swmr_mode
    self.id.start_swmr_write()
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py/h5f.pyx", line 510, in h5py.h5f.FileID.start_swmr_write
TypeError: Unable to convert file format (no write intent on file)

----------------------------------------------------------------------
Ran 457 tests in 0.456s

FAILED (errors=2, skipped=22, expected failures=6)

@scopatz
Copy link
Member

scopatz commented Jun 4, 2019

A PR that fixes this would be very welcome. I don't have the architeture needed to test this.

@kif
Copy link
Contributor Author

kif commented Jun 4, 2019 via email

@scopatz
Copy link
Member

scopatz commented Jun 4, 2019

It seems like HDF5 isn't able to create a real file. I am not sure why. You can try issuing a bug report to HDF5 and seeing if they know what is going on here.

@kif
Copy link
Contributor Author

kif commented Jun 5, 2019 via email

@kif
Copy link
Contributor Author

kif commented Jun 17, 2019

Hi,
I tried to git bissect on this an found actually #1077 to be the culprit !
6b6880b

The description of long-double on ppc64le: 106 bits mantissa but only 11 bits mantissa...
https://gcc.gnu.org/wiki/Ieee128PowerPC

@scopatz
Copy link
Member

scopatz commented Jun 17, 2019

Ahh very interesing! Can you please put in a PR that fixes this for you?

@kif
Copy link
Contributor Author

kif commented Jun 17, 2019

Removing the "specific case" for ppc64le apparently addresses the problem.
This is what I got from numpy on power9:

In [7]: f.type                                                                                                                                                                       
Out[7]: numpy.float128

In [8]: numpy.finfo(f)                                                                                                                                                               
Out[8]: finfo(resolution=1e-31, min=-1.79769313486231580793728971405301e+308, max=1.79769313486231580793728971405301e+308, dtype=float128)

In [9]: numpy.finfo(f).nmant                                                                                                                                                         
Out[9]: 105

In [10]: numpy.finfo(f).maxexp                                                                                                                                                       
Out[10]: 1024

In [11]: numpy.finfo(f).minexp                                                                                                                                                       
Out[11]: -1022

@takluyver
Copy link
Member

It looks like the ppc64le correction was originally introduced in #842 by @mraspaud to fix some (unspecified in the PR) type conversion to longdouble. Then for 2.9 it was moved in #1114 and used in more places.

Ideally it would be good if we could understand what went wrong. Was using it in more places (#1114) inappropriate? Or is the special case needed on some ppc64le machines and not others?

@kif
Copy link
Contributor Author

kif commented Jun 17, 2019

I tried and my code still seg-faults ... apparently it is enough to make the tests execute (actually all are not passing but none are seg-faulting).
I did again a bissect with my code as test and guess what ? I ended at the same place ! which clearly indicates there is smth fishy here. Thanks Thomas for the link. I'll have a look and come back to you.

@mraspaud
Copy link
Contributor

Tell me if I can help with something. Unfortunately I don't have access to this platform anymore.

@epourmal
Copy link

The HDF Group got access to Power9 last week and we will be looking into the problems in the HDF5 library exposed by regression tests and h5py. Unfortunately, it will take time to sort out the issues in both. We will keep you informed on our findings.

One thing to try is to disable compiler optimization when building HDF5 and see if it helps with the datatype conversion.

Elena

@takluyver
Copy link
Member

Thanks all.

@mraspaud - any chance you can find/write a code sample that would have failed before your fix? Then other people could see if proposed fixes for this problem reintroduce the bug you were fixing.

@takluyver
Copy link
Member

Looking at it, I see you re-enabled a test that was skipped on ppc64le: test_custom_float_promotion - presumably that would have failed before #842? If so, then it should be OK if we can pass the tests.

@mraspaud
Copy link
Contributor

Yes, exactly, the test_custom_float_promotion should cover my use case.

@kif
Copy link
Contributor Author

kif commented Jun 17, 2019 via email

@kif
Copy link
Contributor Author

kif commented Jun 18, 2019

Disabling the float128 datatype on PPC64le allows h5py to work properly. This is clearly a workaround but at least it the library does no more crash when reading float32 or float64 which are much more used than float128.

@takluyver
Copy link
Member

I'm a bit mystified why disabling float128 would make a difference to other data types. But if it does, then that sounds like a pragmatic interim fix - as you say, float32 and float64 are more common.

@kif
Copy link
Contributor Author

kif commented Jun 18, 2019

I was like you initially as the datatypes I am interested in are either uint16 or float64.
This is with the patch:

(10, 16, -14, <class 'numpy.float16'>, 'ppc64le')
(23, 128, -126, <class 'numpy.float32'>, 'ppc64le')
(52, 1024, -1022, <class 'numpy.float64'>, 'ppc64le')
(105, 1024, -1022, <class 'numpy.float128'>, 'ppc64le')
Before read
(10, 16, -14, <class 'numpy.float16'>, 'ppc64le')
(23, 128, -126, <class 'numpy.float32'>, 'ppc64le')
(52, 1024, -1022, <class 'numpy.float64'>, 'ppc64le')
reading dataset (4, 16384, 1024) float64
...

This is with float128 activated (some prints are also from h5py, I added them):

('_correct_float_info', 10, 16, -14, <class 'numpy.float16'>, 'ppc64le')
('_correct_float_info', 23, 128, -126, <class 'numpy.float32'>, 'ppc64le')
('_correct_float_info', 52, 1024, -1022, <class 'numpy.float64'>, 'ppc64le')
('_correct_float_info', 105, 1024, -1022, <class 'numpy.float128'>, 'ppc64le')
Before read
('_correct_float_info', 10, 16, -14, <class 'numpy.float16'>, 'ppc64le')
('_correct_float_info', 23, 128, -126, <class 'numpy.float32'>, 'ppc64le')
('_correct_float_info', 52, 1024, -1022, <class 'numpy.float64'>, 'ppc64le')
reading dataset (4, 16384, 1024) float64
Segmentation fault (core dumped)

@kif
Copy link
Contributor Author

kif commented Jun 18, 2019

Actually, only the LDOUBLE_LE seams to cause this seg-fault. IEEE_F128LE looks fine.

@takluyver
Copy link
Member

Can you make a PR from the patch so we can see what the change is?

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

Successfully merging a pull request may close this issue.

5 participants