Skip to content

Nightly Hypothesis tests failed #4280

Description

@github-actions

Workflow Run URL

Python 3.13 Test Summary
tests/test_store/test_stateful.py::test_zarr_hierarchy[memory]: IndexError: index 5 is out of bounds for axis 0 with size 3
Failing test case:
state = ZarrHierarchyStateMachine()
state.init_store()
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 1 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(3,),
   data_type=Bool(dtype_cls=numpy.dtypes.BoolDType,
    _zarr_v3_name='bool',
    _zarr_v2_name='|b1'),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(3,)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.False_,
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=None,
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140614209804608/rJW7FSSM'),
  config=ArrayConfig(order='C',
   write_empty_chunks=False,
   read_missing_chunks=True,
   sharding_coalesce_max_gap_bytes=1048576,
   sharding_coalesce_max_bytes=16777216)))
Adding array:  path='rJW7FSSM'  shape=(3,)  chunks=RegularChunkGridMetadata(chunk_shape=(3,))
state.add_array(data=data(...), name='rJW7FSSM')
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Draw 2: 'rJW7FSSM'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Draw 3: 'rJW7FSSM'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
clearing
state.clear()
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 4 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(3,
    3),
   data_type=Bool(dtype_cls=numpy.dtypes.BoolDType,
    _zarr_v3_name='bool',
    _zarr_v2_name='|b1'),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(3, 3)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.False_,
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={'\U00082138\U0004322aÖ\t\U000e0c47\U0009e56cÏÇ^#Î': {'ø"gÇîHÒ«杁cm&': None},
    'ü\U000fa0a4k': None,
    'yo눯0|': None,
    '£\x1e\rTO\U00053101': [None],
    '0': False,
    '\x88': {'-𩁊ú': [], '[\U000762cb\U000ffbc0\U000598e9±È': [None, None], '0': None},
    'numcodecs.zstd': None,
    '-\U000487cd\x16ÉÆ(ø\x99\x86´$ ¤_x': {'ÖD\U0005171fÔ#𭘞\x05e\U000ea064Nß\U000b3f02𩻫©]\x98': None, '\U000855c6T': None, '\U00093a9aË': None},
    '#\U000ed5fe': False,
    '\x9cY': {'\U000c6576=': False},
    '\x0eÁsG\x9e\x00': None,
    '0:': [None],
    'É\x12': [None],
    '\U000c9916\x95\x89$Ñ\x93ø\U000e619d\xad': None,
    'ê': None},
   dimension_names=None,
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140614209804608/.2qK0IM'),
  config=ArrayConfig(order='C',
   write_empty_chunks=False,
   read_missing_chunks=True,
   sharding_coalesce_max_gap_bytes=1048576,
   sharding_coalesce_max_bytes=16777216)))
Adding array:  path='.2qK0IM'  shape=(3, 3)  chunks=RegularChunkGridMetadata(chunk_shape=(3, 3))
state.add_array(data=data(...), name='.2qK0IM')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
clearing
state.clear()
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 5 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(3,
    3,
    3),
   data_type=Bool(dtype_cls=numpy.dtypes.BoolDType,
    _zarr_v3_name='bool',
    _zarr_v2_name='|b1'),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(3, 3, 3)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.False_,
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=None,
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140614209804608/0'),
  config=ArrayConfig(order='C',
   write_empty_chunks=False,
   read_missing_chunks=True,
   sharding_coalesce_max_gap_bytes=1048576,
   sharding_coalesce_max_bytes=16777216)))
Adding array:  path='0'  shape=(3, 3, 3)  chunks=RegularChunkGridMetadata(chunk_shape=(3, 3, 3))
state.add_array(data=data(...), name='0')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
clearing
state.clear()
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 6 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(4,
    5,
    4),
   data_type=Float16(endianness='little',
    dtype_cls=numpy.dtypes.Float16DType,
    _zarr_v3_name='float16',
    _zarr_v2_names=('>f2', '<f2')),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(1, 1, 1)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.float16(-0.0),
   codecs=(BytesCodec(endian='little'), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=('.U', None, None),
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140614209804608/0'),
  config=ArrayConfig(order='C',
   write_empty_chunks=False,
   read_missing_chunks=True,
   sharding_coalesce_max_gap_bytes=1048576,
   sharding_coalesce_max_bytes=16777216)))
Adding array:  path='0'  shape=(4, 5, 4)  chunks=RegularChunkGridMetadata(chunk_shape=(1, 1, 1))
state.add_array(data=data(...), name='0')
state.check_list_prefix_from_root()
Checking 81 expected keys vs 81 actual keys
clearing
state.clear()
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 7 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(3,),
   data_type=Int8(dtype_cls=numpy.dtypes.Int8DType,
    _zarr_v3_name='int8',
    _zarr_v2_names=('|i1',)),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(3,)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.int8(0),
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=None,
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140614209804608/p6fZ-'),
  config=ArrayConfig(order='C',
   write_empty_chunks=False,
   read_missing_chunks=True,
   sharding_coalesce_max_gap_bytes=1048576,
   sharding_coalesce_max_bytes=16777216)))
Adding array:  path='p6fZ-'  shape=(3,)  chunks=RegularChunkGridMetadata(chunk_shape=(3,))
state.add_array(data=data(...), name='p6fZ-')
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Adding group: path='C2A4j'
state.add_group(data=data(...), name='C2A4j')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 8: 'C2A4j'
Draw 9: False
delete_dir with path='C2A4j'
state.delete_dir(data=data(...))
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Draw 10: 'p6fZ-'
Draw 11: slice(None, -3, None)
overwriting array with basic indexer: slicer=slice(None, -3, None)
Draw 12: array([], dtype=int8)
state.overwrite_array_basic_indexing(data=data(...))
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Draw 13 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(5,
    4),
   data_type=Int8(dtype_cls=numpy.dtypes.Int8DType,
    _zarr_v3_name='int8',
    _zarr_v2_names=('|i1',)),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(2, 4)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.int8(0),
   codecs=(ShardingCodec(chunk_shape=(2, 2),
     codecs=(ShardingCodec(chunk_shape=(2, 2),
       codecs=(BytesCodec(endian=None),),
       index_codecs=(BytesCodec(endian='little'), Crc32cCodec()),
       index_location='end',
       subchunk_write_order='morton'),),
     index_codecs=(BytesCodec(endian='little'), Crc32cCodec()),
     index_location='end',
     subchunk_write_order='morton'),),
   attributes={},
   dimension_names=('8', None),
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140614209804608/j-JJG2'),
  config=ArrayConfig(order='C',
   write_empty_chunks=False,
   read_missing_chunks=True,
   sharding_coalesce_max_gap_bytes=1048576,
   sharding_coalesce_max_bytes=16777216)))
Adding array:  path='j-JJG2'  shape=(5, 4)  chunks=RegularChunkGridMetadata(chunk_shape=(2, 4))
state.add_array(data=data(...), name='j-JJG2')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 14 (Array deletion target): 'p6fZ-'
Deleting array 'p6fZ-' (prefix='', array_name='p6fZ-') using del
state.delete_array_using_del(data=data(...))
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Adding group: path='3069fJkq'
state.add_group(data=data(...), name='3069fJkq')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 15: 'j-JJG2'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 16: 'j-JJG2'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 17 (Group parent): '3069fJkq'
Adding group: path='3069fJkq/VNG7YhEAXZm7fI7Xsa3xcW'
state.add_group(data=data(...), name='VNG7YhEAXZm7fI7Xsa3xcW')
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 18: 'j-JJG2'
Draw 19: (slice(2, 5, None), slice(2, 2, None))
overwriting array with basic indexer: slicer=(slice(2, 5, None), slice(2, 2, None))
Draw 20: array([], shape=(3, 0), dtype=int8)
state.overwrite_array_basic_indexing(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 21: 'j-JJG2'
Draw 22: (slice(3, 5, None), slice(2, 4, None))
overwriting array with basic indexer: slicer=(slice(3, 5, None), slice(2, 4, None))
Draw 23: array([[0, 0],
       [0, 0]], dtype=int8)
state.overwrite_array_basic_indexing(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 24: 'j-JJG2'
Draw 25: ((array([ 0, -5,  3,  0]), array([-1,  1,  2,  3])),
 (array([[ 0,  0,  0,  0],
         [-5, -5, -5, -5],
         [ 3,  3,  3,  3],
         [ 0,  0,  0,  0]]), array([[-1,  1,  2,  3],
         [-1,  1,  2,  3],
         [-1,  1,  2,  3],
         [-1,  1,  2,  3]])))
overwriting array orthogonal indexer=(array([ 0, -5,  3,  0]), array([-1,  1,  2,  3]))
Draw 26: array([[0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 0]], dtype=int8)
state.overwrite_array_orthogonal_indexing(data=data(...))
state.teardown()
Explanation:
    These lines were always and only run by failing test cases:
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1057
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1563
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1592
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1638
        /home/runner/work/zarr-python/zarr-python/src/zarr/core/indexing.py:302
        (and 38 more with settings.verbosity >= verbose)

You can reproduce this test case by temporarily adding @reproduce_failure('6.165.5', b'AXicZVTNTxNBFJ9pqShVVEw8eDBEitmDbRoQKiYaJqhICXgA5cOgMYWKRUAsGjQe3NKPLY0YrC0UoWhoTFrkKxqCiJLMHP0n9IAXL7Q1ejBRZ2anFHBndve9t2/ee7/fvFkAUB0CfGgAe+Ypd61NlgsNDcIMkZbegN/MAOmkIn0DsY4r4qvQ83ymkr5ac00dgvBFyuVeTg4qCRLek3656EtFQ2/IU+K7VkSGkQYGyfKxm8RH5i6SZ3jm26Rs6z7O0vnIanrFFeviNfge9H5X5s2PuDKEp4/ua7yUDLplGp75ymZeGHRhBWmhMKrFczt95kCfcSMuD5EVZhi5mlwKBNJr84+Tkek4XiQKX5QNRt/DPfe6bb3tHTan6aGzvz3jAHlAVYEQivAARoxJZerJYeInXoks4wj24neGQhy7PkBBThlI+FxyZGKKPC/amB2L6jrSCTlWT6ZSb1ddG/EPMzjehsdoFE/KM+ptpII3FUyMkwArxFOUnh39pCIZxBMtNJ4n7Q0tnWF7AJV8IjurcVTdLNnsMp/OVLelVvZFNg8Sf4FQQ2l/LIxD2G8gI5juQfq1dxLP8hgukkAwu5xOmjA5PhpxMN3d39nRwwUSIeOMAl8TUQZM5NV2hngfqP3DWki1MBDbm0U0HSUdbnHfueL/BuO7pFVX5ECko08qGSSiK8Zf56KKpAS72uT7ixUQGaWyPz2/5B+3j0BUK60dAPyC6IRU5Shw2AMLByXo/nz2/Ze9bRAVS5UffwbKdE4PlekEUqXqT+uQqrRL+an1/YVSdKHfewiv32J1aVEOHbREl+myQL0TnedOub3VyKFsniiVK0FYdgLhlTlmGqQHnqoSdNIBkE4NnSsoQWxjgMo1zPDEDECVeSh6Uay0BuB1GK3W6pJsFYIzLvPk+mx6HkE+xSDQwVOp2LS8ND1QSs3lFXZrV9//fwI9CF+pr7a0dJ5Hza3dFnuNpdl5o3TA1sRccjktlDQNAkLT8hwangKyPWW4NntBIzoQqT+g3YAfZhZC+Gj41Ap3iH4LD4D+qoxkmhKq4SkC6r+LY/0HGMAuhg==') as a decorator on your test function

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions