zarr-python icon indicating copy to clipboard operation
zarr-python copied to clipboard

non-deterministic test failures in test_open_array and test_open_group

Open apteryks opened this issue 1 year ago • 0 comments

Zarr version

v2.17.1

Numcodecs version

N/A

Python Version

3.10

Operating System

GNU/Linux

Installation

From source (build time error)

Description

The test suite encounters failures such as:

=================================== FAILURES ===================================
________________________ test_open_array[False-None-/] _________________________
[gw21] linux -- Python 3.10.7 /gnu/store/i8pga71yj909d7lpdv4aprd8wyzfznfp-python-wrapper-3.10.7/bin/python

zarr_version = None, at_root = False, dimension_separator = '/'

    @pytest.mark.parametrize("dimension_separator", [".", "/", None])
    @pytest.mark.parametrize("zarr_version", _VERSIONS)
    @pytest.mark.parametrize("at_root", [False, True])
    def test_open_array(zarr_version, at_root, dimension_separator):
        store = "data/array.zarr"
        kwargs = _init_creation_kwargs(zarr_version, at_root)
    
        # mode == 'w'
        z = open_array(
            store, mode="w", shape=100, chunks=10, dimension_separator=dimension_separator, **kwargs
        )
        z[:] = 42
        assert isinstance(z, Array)
        if z._store._store_version == 2:
            assert isinstance(z.store, DirectoryStore)
        else:
            assert isinstance(z.store, DirectoryStoreV3)
        assert (100,) == z.shape
        assert (10,) == z.chunks
>       assert_array_equal(np.full(100, fill_value=42), z[:])
E       AssertionError: 
E       Arrays are not equal
E       
E       Mismatched elements: 60 / 100 (60%)
E       Max absolute difference: 42.
E       Max relative difference: 0.
E        x: array([42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
E              42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
E              42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,...
E        y: array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
E               0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
E               0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,...

zarr/tests/test_creation.py:230: AssertionError

Rebuilding the package many times, the following failures were also found on an x86_64 machine using 24 cores:

zarr/tests/test_core.py::TestArrayWithFSStorePartialRead::test_iter 
[gw40] [ 99%] PASSED zarr/tests/test_core.py::TestArrayWithFSStorePartialRead::test_iter 
[gw94] [ 99%] PASSED zarr/tests/test_indexing.py::test_set_orthogonal_selection_3d 
zarr/tests/test_indexing.py::test_orthogonal_indexing_fallback_on_get_setitem 
[gw94] [ 99%] PASSED zarr/tests/test_indexing.py::test_orthogonal_indexing_fallback_on_get_setitem 
zarr/tests/test_indexing.py::test_get_coordinate_selection_1d 
[gw94] [100%] PASSED zarr/tests/test_indexing.py::test_get_coordinate_selection_1d 

=================================== FAILURES ===================================
________________________ test_open_array[False-None-.] _________________________
[gw68] linux -- Python 3.10.7 /gnu/store/jh59fh48mcffyz5wmsjj0p96xkkflbz0-python-wrapper-3.10.7/bin/python

zarr_version = None, at_root = False, dimension_separator = '.'

    @pytest.mark.parametrize("dimension_separator", [".", "/", None])
    @pytest.mark.parametrize("zarr_version", _VERSIONS)
    @pytest.mark.parametrize("at_root", [False, True])
    def test_open_array(zarr_version, at_root, dimension_separator):
        store = "data/array.zarr"
        kwargs = _init_creation_kwargs(zarr_version, at_root)
    
        # mode == 'w'
        z = open_array(
            store, mode="w", shape=100, chunks=10, dimension_separator=dimension_separator, **kwargs
        )
        z[:] = 42
        assert isinstance(z, Array)
        if z._store._store_version == 2:
            assert isinstance(z.store, DirectoryStore)
        else:
            assert isinstance(z.store, DirectoryStoreV3)
        assert (100,) == z.shape
        assert (10,) == z.chunks
>       assert_array_equal(np.full(100, fill_value=42), z[:])
E       AssertionError: 
E       Arrays are not equal
E       
E       Mismatched elements: 10 / 100 (10%)
E       Max absolute difference: 42.
E       Max relative difference: 0.
E        x: array([42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
E              42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
E              42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,...
E        y: array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0., 42., 42., 42.,
E              42., 42., 42., 42., 42., 42., 42., 42., 42., 42., 42., 42., 42.,
E              42., 42., 42., 42., 42., 42., 42., 42., 42., 42., 42., 42., 42.,...

zarr/tests/test_creation.py:230: AssertionError
_______________________ test_open_array[False-None-None] _______________________
[gw68] linux -- Python 3.10.7 /gnu/store/jh59fh48mcffyz5wmsjj0p96xkkflbz0-python-wrapper-3.10.7/bin/python

zarr_version = None, at_root = False, dimension_separator = None

    @pytest.mark.parametrize("dimension_separator", [".", "/", None])
    @pytest.mark.parametrize("zarr_version", _VERSIONS)
    @pytest.mark.parametrize("at_root", [False, True])
    def test_open_array(zarr_version, at_root, dimension_separator):
        store = "data/array.zarr"
        kwargs = _init_creation_kwargs(zarr_version, at_root)
    
        # mode == 'w'
        z = open_array(
            store, mode="w", shape=100, chunks=10, dimension_separator=dimension_separator, **kwargs
        )
        z[:] = 42
        assert isinstance(z, Array)
        if z._store._store_version == 2:
            assert isinstance(z.store, DirectoryStore)
        else:
            assert isinstance(z.store, DirectoryStoreV3)
        assert (100,) == z.shape
        assert (10,) == z.chunks
        assert_array_equal(np.full(100, fill_value=42), z[:])
    
        if dimension_separator is None:
            assert z._dimension_separator == "/" if zarr_version == 3 else "."
        else:
            assert z._dimension_separator == dimension_separator
    
        # mode in 'r', 'r+'
        group_kwargs = kwargs.copy()
        if zarr_version == 3:
            group_kwargs["path"] = "group"
        open_group("data/group.zarr", mode="w", **group_kwargs)
        for mode in "r", "r+":
            with pytest.raises(ValueError):
                open_array("doesnotexist", mode=mode)
            with pytest.raises(ValueError):
                open_array("data/group.zarr", mode=mode)
        z = open_array(store, mode="r", **kwargs)
        assert isinstance(z, Array)
        if z._store._store_version == 2:
            assert isinstance(z.store, DirectoryStore)
        else:
            assert isinstance(z.store, DirectoryStoreV3)
        assert (100,) == z.shape
        assert (10,) == z.chunks
        assert_array_equal(np.full(100, fill_value=42), z[:])
        with pytest.raises(PermissionError):
            z[:] = 43
        z = open_array(store, mode="r+", **kwargs)
        assert isinstance(z, Array)
        if z._store._store_version == 2:
            assert isinstance(z.store, DirectoryStore)
        else:
            assert isinstance(z.store, DirectoryStoreV3)
        assert (100,) == z.shape
        assert (10,) == z.chunks
        assert_array_equal(np.full(100, fill_value=42), z[:])
        z[:] = 43
        assert_array_equal(np.full(100, fill_value=43), z[:])
    
        # mode == 'a'
        shutil.rmtree(store)
        z = open_array(store, mode="a", shape=100, chunks=10, **kwargs)
        z[:] = 42
        assert isinstance(z, Array)
        if z._store._store_version == 2:
            assert isinstance(z.store, DirectoryStore)
        else:
            assert isinstance(z.store, DirectoryStoreV3)
        assert (100,) == z.shape
        assert (10,) == z.chunks
>       assert_array_equal(np.full(100, fill_value=42), z[:])
E       AssertionError: 
E       Arrays are not equal
E       
E       Mismatched elements: 50 / 100 (50%)
E       Max absolute difference: 42.
E       Max relative difference: 0.
E        x: array([42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
E              42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
E              42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,...
E        y: array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
E               0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
E               0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,...

zarr/tests/test_creation.py:281: AssertionError
______________ test_open_array_infer_separator_from_store[2-None] ______________
[gw61] linux -- Python 3.10.7 /gnu/store/jh59fh48mcffyz5wmsjj0p96xkkflbz0-python-wrapper-3.10.7/bin/python

zarr_version = 2, dimension_separator = None

    @pytest.mark.parametrize("dimension_separator", [".", "/", None])
    @pytest.mark.parametrize("zarr_version", _VERSIONS2)
    def test_open_array_infer_separator_from_store(zarr_version, dimension_separator):
        if zarr_version == 3:
            StoreClass = DirectoryStoreV3
            path = "data"
        else:
            StoreClass = DirectoryStore
            path = None
        store = StoreClass("data/array.zarr", dimension_separator=dimension_separator)
    
        # Note: no dimension_separator kwarg to open_array
        #       we are testing here that it gets inferred from store
>       z = open_array(store, path=path, mode="w", shape=100, chunks=10)

zarr/tests/test_creation.py:349: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
zarr/creation.py:629: in open_array
    init_array(
zarr/storage.py:454: in init_array
    _init_array_metadata(
zarr/storage.py:496: in _init_array_metadata
    rmdir(store, path)
zarr/storage.py:211: in rmdir
    store.rmdir(path)
zarr/storage.py:1261: in rmdir
    shutil.rmtree(dir_path)
/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:724: in rmtree
    _rmtree_safe_fd(fd, path, onerror)
/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:663: in _rmtree_safe_fd
    onerror(os.rmdir, fullname, sys.exc_info())
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

topfd = 13
path = '/tmp/guix-build-python-zarr-2.17.1.drv-0/zarr-2.17.1/data/array.zarr'
onerror = <function rmtree.<locals>.onerror at 0x7ffcc55f7eb0>

    def _rmtree_safe_fd(topfd, path, onerror):
        try:
            with os.scandir(topfd) as scandir_it:
                entries = list(scandir_it)
        except OSError as err:
            err.filename = path
            onerror(os.scandir, path, sys.exc_info())
            return
        for entry in entries:
            fullname = os.path.join(path, entry.name)
            try:
                is_dir = entry.is_dir(follow_symlinks=False)
            except OSError:
                is_dir = False
            else:
                if is_dir:
                    try:
                        orig_st = entry.stat(follow_symlinks=False)
                        is_dir = stat.S_ISDIR(orig_st.st_mode)
                    except OSError:
                        onerror(os.lstat, fullname, sys.exc_info())
                        continue
            if is_dir:
                try:
                    dirfd = os.open(entry.name, os.O_RDONLY, dir_fd=topfd)
                    dirfd_closed = False
                except OSError:
                    onerror(os.open, fullname, sys.exc_info())
                else:
                    try:
                        if os.path.samestat(orig_st, os.fstat(dirfd)):
                            _rmtree_safe_fd(dirfd, fullname, onerror)
                            try:
                                os.close(dirfd)
                                dirfd_closed = True
>                               os.rmdir(entry.name, dir_fd=topfd)
E                               OSError: [Errno 39] Directory not empty: 'array'

/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:661: OSError
_________________________ test_open_array[True-None-/] _________________________
[gw54] linux -- Python 3.10.7 /gnu/store/jh59fh48mcffyz5wmsjj0p96xkkflbz0-python-wrapper-3.10.7/bin/python

zarr_version = None, at_root = True, dimension_separator = '/'

    @pytest.mark.parametrize("dimension_separator", [".", "/", None])
    @pytest.mark.parametrize("zarr_version", _VERSIONS)
    @pytest.mark.parametrize("at_root", [False, True])
    def test_open_array(zarr_version, at_root, dimension_separator):
        store = "data/array.zarr"
        kwargs = _init_creation_kwargs(zarr_version, at_root)
    
        # mode == 'w'
>       z = open_array(
            store, mode="w", shape=100, chunks=10, dimension_separator=dimension_separator, **kwargs
        )

zarr/tests/test_creation.py:219: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
zarr/creation.py:629: in open_array
    init_array(
zarr/storage.py:454: in init_array
    _init_array_metadata(
zarr/storage.py:496: in _init_array_metadata
    rmdir(store, path)
zarr/storage.py:211: in rmdir
    store.rmdir(path)
zarr/storage.py:1261: in rmdir
    shutil.rmtree(dir_path)
/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:724: in rmtree
    _rmtree_safe_fd(fd, path, onerror)
/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:657: in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:680: in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

topfd = 14
path = '/tmp/guix-build-python-zarr-2.17.1.drv-0/zarr-2.17.1/data/array.zarr/array'
onerror = <function rmtree.<locals>.onerror at 0x7ffcc4faf9a0>

    def _rmtree_safe_fd(topfd, path, onerror):
        try:
            with os.scandir(topfd) as scandir_it:
                entries = list(scandir_it)
        except OSError as err:
            err.filename = path
            onerror(os.scandir, path, sys.exc_info())
            return
        for entry in entries:
            fullname = os.path.join(path, entry.name)
            try:
                is_dir = entry.is_dir(follow_symlinks=False)
            except OSError:
                is_dir = False
            else:
                if is_dir:
                    try:
                        orig_st = entry.stat(follow_symlinks=False)
                        is_dir = stat.S_ISDIR(orig_st.st_mode)
                    except OSError:
                        onerror(os.lstat, fullname, sys.exc_info())
                        continue
            if is_dir:
                try:
                    dirfd = os.open(entry.name, os.O_RDONLY, dir_fd=topfd)
                    dirfd_closed = False
                except OSError:
                    onerror(os.open, fullname, sys.exc_info())
                else:
                    try:
                        if os.path.samestat(orig_st, os.fstat(dirfd)):
                            _rmtree_safe_fd(dirfd, fullname, onerror)
                            try:
                                os.close(dirfd)
                                dirfd_closed = True
                                os.rmdir(entry.name, dir_fd=topfd)
                            except OSError:
                                onerror(os.rmdir, fullname, sys.exc_info())
                        else:
                            try:
                                # This can only happen if someone replaces
                                # a directory with a symlink after the call to
                                # os.scandir or stat.S_ISDIR above.
                                raise OSError("Cannot call rmtree on a symbolic "
                                              "link")
                            except OSError:
                                onerror(os.path.islink, fullname, sys.exc_info())
                    finally:
                        if not dirfd_closed:
                            os.close(dirfd)
            else:
                try:
>                   os.unlink(entry.name, dir_fd=topfd)
E                   FileNotFoundError: [Errno 2] No such file or directory: '5.940c91f36a14410a953ed10fc9c5eac8.partial'

/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:678: FileNotFoundError
_______________________ test_open_array[True-None-None] ________________________
[gw54] linux -- Python 3.10.7 /gnu/store/jh59fh48mcffyz5wmsjj0p96xkkflbz0-python-wrapper-3.10.7/bin/python

zarr_version = None, at_root = True, dimension_separator = None

    @pytest.mark.parametrize("dimension_separator", [".", "/", None])
    @pytest.mark.parametrize("zarr_version", _VERSIONS)
    @pytest.mark.parametrize("at_root", [False, True])
    def test_open_array(zarr_version, at_root, dimension_separator):
        store = "data/array.zarr"
        kwargs = _init_creation_kwargs(zarr_version, at_root)
    
        # mode == 'w'
>       z = open_array(
            store, mode="w", shape=100, chunks=10, dimension_separator=dimension_separator, **kwargs
        )

zarr/tests/test_creation.py:219: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
zarr/creation.py:629: in open_array
    init_array(
zarr/storage.py:454: in init_array
    _init_array_metadata(
zarr/storage.py:496: in _init_array_metadata
    rmdir(store, path)
zarr/storage.py:211: in rmdir
    store.rmdir(path)
zarr/storage.py:1261: in rmdir
    shutil.rmtree(dir_path)
/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:730: in rmtree
    onerror(os.rmdir, path, sys.exc_info())
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

path = '/tmp/guix-build-python-zarr-2.17.1.drv-0/zarr-2.17.1/data/array.zarr'
ignore_errors = False
onerror = <function rmtree.<locals>.onerror at 0x7ffcc54569e0>

    def rmtree(path, ignore_errors=False, onerror=None):
        """Recursively delete a directory tree.
    
        If ignore_errors is set, errors are ignored; otherwise, if onerror
        is set, it is called to handle the error with arguments (func,
        path, exc_info) where func is platform and implementation dependent;
        path is the argument to that function that caused it to fail; and
        exc_info is a tuple returned by sys.exc_info().  If ignore_errors
        is false and onerror is None, an exception is raised.
    
        """
        sys.audit("shutil.rmtree", path)
        if ignore_errors:
            def onerror(*args):
                pass
        elif onerror is None:
            def onerror(*args):
                raise
        if _use_fd_functions:
            # While the unsafe rmtree works fine on bytes, the fd based does not.
            if isinstance(path, bytes):
                path = os.fsdecode(path)
            # Note: To guard against symlink races, we use the standard
            # lstat()/open()/fstat() trick.
            try:
                orig_st = os.lstat(path)
            except Exception:
                onerror(os.lstat, path, sys.exc_info())
                return
            try:
                fd = os.open(path, os.O_RDONLY)
                fd_closed = False
            except Exception:
                onerror(os.open, path, sys.exc_info())
                return
            try:
                if os.path.samestat(orig_st, os.fstat(fd)):
                    _rmtree_safe_fd(fd, path, onerror)
                    try:
                        os.close(fd)
                        fd_closed = True
>                       os.rmdir(path)
E                       OSError: [Errno 39] Directory not empty: '/tmp/guix-build-python-zarr-2.17.1.drv-0/zarr-2.17.1/data/array.zarr'

/gnu/store/4r7k7ipiaqkdf4lmnxwmbz0wx2yzygzc-python-3.10.7/lib/python3.10/shutil.py:728: OSError
______________________________ test_open_group[2] ______________________________
[gw93] linux -- Python 3.10.7 /gnu/store/jh59fh48mcffyz5wmsjj0p96xkkflbz0-python-wrapper-3.10.7/bin/python

zarr_version = 2

    @pytest.mark.parametrize("zarr_version", _VERSIONS)
    def test_open_group(zarr_version):
        # test the open_group() convenience function
    
        store = "data/group.zarr"
    
        expected_store_type = DirectoryStore if zarr_version == 2 else DirectoryStoreV3
    
        # mode == 'w'
        path = None if zarr_version == 2 else "group1"
        g = open_group(store, path=path, mode="w", zarr_version=zarr_version)
        assert isinstance(g, Group)
        assert isinstance(g.store, expected_store_type)
        assert 0 == len(g)
        g.create_groups("foo", "bar")
        assert 2 == len(g)
    
        # mode in 'r', 'r+'
        open_array("data/array.zarr", shape=100, chunks=10, mode="w")
        for mode in "r", "r+":
            with pytest.raises(ValueError):
                open_group("doesnotexist", mode=mode)
            with pytest.raises(ValueError):
                open_group("data/array.zarr", mode=mode)
        g = open_group(store, mode="r")
        assert isinstance(g, Group)
        assert 2 == len(g)
        with pytest.raises(PermissionError):
            g.create_group("baz")
        g = open_group(store, mode="r+")
        assert isinstance(g, Group)
        assert 2 == len(g)
        g.create_groups("baz", "quux")
        assert 4 == len(g)
    
        # mode == 'a'
        shutil.rmtree(store)
        g = open_group(store, path=path, mode="a", zarr_version=zarr_version)
        assert isinstance(g, Group)
        assert isinstance(g.store, expected_store_type)
        assert 0 == len(g)
        g.create_groups("foo", "bar")
        assert 2 == len(g)
        if zarr_version == 2:
            with pytest.raises(ValueError):
                open_group("data/array.zarr", mode="a", zarr_version=zarr_version)
        else:
            # TODO, root: should this raise an error?
            open_group("data/array.zarr", mode="a", zarr_version=zarr_version)
    
        # mode in 'w-', 'x'
        for mode in "w-", "x":
            shutil.rmtree(store)
            g = open_group(store, path=path, mode=mode, zarr_version=zarr_version)
            assert isinstance(g, Group)
            assert isinstance(g.store, expected_store_type)
            assert 0 == len(g)
            g.create_groups("foo", "bar")
            assert 2 == len(g)
            with pytest.raises(ValueError):
                open_group(store, path=path, mode=mode, zarr_version=zarr_version)
            if zarr_version == 2:
>               with pytest.raises(ValueError):
E               Failed: DID NOT RAISE <class 'ValueError'>

zarr/tests/test_hierarchy.py:1676: Failed
============================= slowest 10 durations =============================
30.96s call     zarr/tests/test_indexing.py::test_set_orthogonal_selection_3d
22.03s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_islice
21.43s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_iter
19.92s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_append_2d_axis
19.75s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_resize_2d
19.69s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_append_2d
18.88s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_array_order
12.94s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_np_ufuncs
11.38s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_dtypes
9.64s call     zarr/tests/test_core.py::TestArrayWithSQLiteStore::test_compressors
=========================== short test summary info ============================
FAILED zarr/tests/test_creation.py::test_open_array[False-None-.] - Assertion...
FAILED zarr/tests/test_creation.py::test_open_array[False-None-None] - Assert...
FAILED zarr/tests/test_creation.py::test_open_array_infer_separator_from_store[2-None]
FAILED zarr/tests/test_creation.py::test_open_array[True-None-/] - FileNotFou...
FAILED zarr/tests/test_creation.py::test_open_array[True-None-None] - OSError...
FAILED zarr/tests/test_hierarchy.py::test_open_group[2] - Failed: DID NOT RAI...
====== 6 failed, 2556 passed, 2563 skipped, 8 xfailed in 70.39s (0:01:10) ======
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/glrxjwic379h2gmyxc2sfchvnw5g1aai-python-pytest-7.1.3/bin/pytest" arguments: ("-vv" "-n" "auto") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `check' failed after 71.6 seconds
command "/gnu/store/glrxjwic379h2gmyxc2sfchvnw5g1aai-python-pytest-7.1.3/bin/pytest" "-vv" "-n" "auto" failed with status 1

Steps to reproduce

On a current Guix, run:

$ guix build --no-grafts --check --rounds=10 python-zarr

It'll attempt to build the package 10 times, probably fail as it does on my end.

Additional output

Attached is the full build log.

apteryks avatar Mar 31 '24 14:03 apteryks