Skip to content

segfault at exit when an exception exited stage_version context #250

@quarl

Description

@quarl
$ cat repro.py
import datetime
import h5py
import numpy
from   versioned_hdf5           import VersionedHDF5File

import some_deshaw_module

def f():
    path_to_write = '/tmp/foo.h5'
    timestamp = numpy.datetime64(datetime.datetime.utcnow())
    f = h5py.File(path_to_write, 'w')
    vf = VersionedHDF5File(f)
    with vf.stage_version('v1', timestamp=timestamp) as sv:
        sv.create_dataset('foo', data=numpy.arange(10))
    with vf.stage_version('v2', timestamp=timestamp) as sv:
        1/0

f()

$ ipython repro.py
ZeroDivisionError: division by zero
zsh: segmentation fault (core dumped)

If I remove the 'import some_deshaw_module' or use python instead of ipython, then it doesn't reproduce the segfault.
I suspect whether the segfault happens depends on specifics of memory layout, so even if we get a reproducer without some_deshaw_module it might still not segfault on a different computer. I've seen similar cases where even the length of the contents of $PATH affected whether code segfaulted.

Before we do more work on making a more self-contained reproducer, are you able to see what the problem could be based on inspecting the code?

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions