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 4 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=(0,
    0,
    0,
    0),
   data_type=Int8(dtype_cls=numpy.dtypes.Int8DType,
    _zarr_v3_name='int8',
    _zarr_v2_names=('|i1',)),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(1, 1, 1, 1)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.int8(4),
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=None,
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140573778165568/Cvb0'),
  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='Cvb0'  shape=(0, 0, 0, 0)  chunks=RegularChunkGridMetadata(chunk_shape=(1, 1, 1, 1))
state.add_array(data=data(...), name='Cvb0')
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
Adding group: path='ZInRu2WF'
state.add_group(data=data(...), name='ZInRu2WF')
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Draw 2: 'ZInRu2WF'
Draw 3: False
delete_dir with path='ZInRu2WF'
state.delete_dir(data=data(...))
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=(5,
    5),
   data_type=Int8(dtype_cls=numpy.dtypes.Int8DType,
    _zarr_v3_name='int8',
    _zarr_v2_names=('|i1',)),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(1, 2)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.int8(1),
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=(None, None),
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140573778165568/9y'),
  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='9y'  shape=(5, 5)  chunks=RegularChunkGridMetadata(chunk_shape=(1, 2))
state.add_array(data=data(...), name='9y')
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Adding group: path='4x-a7kQb1Ui'
state.add_group(data=data(...), name='4x-a7kQb1Ui')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 5: '9y'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Draw 6 (Array deletion target): '9y'
Deleting array '9y' (prefix='', array_name='9y') using del
state.delete_array_using_del(data=data(...))
state.check_list_prefix_from_root()
Checking 2 expected keys vs 2 actual keys
Draw 7 (Array parent): '4x-a7kQb1Ui'
Draw 8 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(3,
    4,
    3,
    4),
   data_type=Int8(dtype_cls=numpy.dtypes.Int8DType,
    _zarr_v3_name='int8',
    _zarr_v2_names=('|i1',)),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(3, 1, 3, 2)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.int8(0),
   codecs=(BytesCodec(endian=None), ZstdCodec(level=0, checksum=False)),
   attributes={'ʱ\U0006e262Ã': [None, True, None]},
   dimension_names=('-', 'Py', None, 'r02OgAo5'),
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140573778165568/4x-a7kQb1Ui/4hsKao'),
  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='4x-a7kQb1Ui/4hsKao'  shape=(3, 4, 3, 4)  chunks=RegularChunkGridMetadata(chunk_shape=(3, 1, 3, 2))
state.add_array(data=data(...), name='4hsKao')
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 9: '4x-a7kQb1Ui/4hsKao'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 10 (Group parent): '4x-a7kQb1Ui'
Adding group: path='4x-a7kQb1Ui/y'
state.add_group(data=data(...), name='y')
state.check_list_prefix_from_root()
Checking 5 expected keys vs 5 actual keys
Draw 11: '4x-a7kQb1Ui/4hsKao'
Draw 12: '0/0/0/0'
deleting chunk path='4x-a7kQb1Ui/4hsKao/c/0/0/0/0'
state.delete_chunk(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 13: '4x-a7kQb1Ui/4hsKao'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 14 (Group deletion target): '4x-a7kQb1Ui'
Deleting group 'group_path='4x-a7kQb1Ui'', prefix='', group_name='4x-a7kQb1Ui' using delete
state.delete_group_using_del(data=data(...))
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 15 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(4,),
   data_type=DateTime64(endianness='little',
    dtype_cls=numpy.dtypes.DateTime64DType,
    _zarr_v3_name='numpy.datetime64',
    _numpy_name='datetime64',
    scale_factor=1,
    unit='Y',
    _zarr_v2_names=('>M8', '<M8')),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(2,)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.datetime64('NaT','Y'),
   codecs=(BytesCodec(endian='little'), ZstdCodec(level=0, checksum=False)),
   attributes={},
   dimension_names=('jBUw',),
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140573778165568/93CXzxZp'),
  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='93CXzxZp'  shape=(4,)  chunks=RegularChunkGridMetadata(chunk_shape=(2,))
state.add_array(data=data(...), name='93CXzxZp')
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 16 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(3,
    3),
   data_type=Int8(dtype_cls=numpy.dtypes.Int8DType,
    _zarr_v3_name='int8',
    _zarr_v2_names=('|i1',)),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(2, 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://140573778165568/X_'),
  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='X_'  shape=(3, 3)  chunks=RegularChunkGridMetadata(chunk_shape=(2, 3))
state.add_array(data=data(...), name='X_')
state.check_list_prefix_from_root()
Checking 5 expected keys vs 5 actual keys
Draw 17: 'X_'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 5 expected keys vs 5 actual keys
Draw 18: 'X_'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 5 expected keys vs 5 actual keys
Draw 19: 'X_'
Draw 20: False
delete_dir with path='X_'
state.delete_dir(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 21: '93CXzxZp'
state.check_array(data=data(...))
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 22 (Array deletion target): '93CXzxZp'
Deleting array '93CXzxZp' (prefix='', array_name='93CXzxZp') using del
state.delete_array_using_del(data=data(...))
state.check_list_prefix_from_root()
Checking 1 expected keys vs 1 actual keys
Draw 23 (generated array): Array(_async_array=AsyncArray(metadata=ArrayV3Metadata(shape=(4,
    4),
   data_type=Complex128(endianness='little',
    dtype_cls=numpy.dtypes.Complex128DType,
    _zarr_v3_name='complex128',
    _zarr_v2_names=('>c16', '<c16')),
   chunk_grid=RegularChunkGridMetadata(chunk_shape=(4, 4)),
   chunk_key_encoding=DefaultChunkKeyEncoding(name='default', separator='/'),
   fill_value=np.complex128(1.626131918803748e+16-1.59956364976269e+62j),
   codecs=(ShardingCodec(chunk_shape=(2, 2),
     codecs=(ShardingCodec(chunk_shape=(2, 2),
       codecs=(BytesCodec(endian='little'),),
       index_codecs=(BytesCodec(endian='little'), Crc32cCodec()),
       index_location='end',
       subchunk_write_order='lexicographic'),),
     index_codecs=(BytesCodec(endian='little'), Crc32cCodec()),
     index_location='end',
     subchunk_write_order='morton'),),
   attributes={},
   dimension_names=None,
   storage_transformers=(),
   extra_fields={}),
  store_path=StorePath(MemoryStore, 'memory://140573778165568/9FJ'),
  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='9FJ'  shape=(4, 4)  chunks=RegularChunkGridMetadata(chunk_shape=(4, 4))
state.add_array(data=data(...), name='9FJ')
state.check_list_prefix_from_root()
Checking 3 expected keys vs 3 actual keys
Adding group: path='.PO'
state.add_group(data=data(...), name='.PO')
state.check_list_prefix_from_root()
Checking 4 expected keys vs 4 actual keys
Draw 24: '9FJ'
Draw 25: ((array([-4, -2, -1]), array([-3, -2])), (array([[-4, -4],
         [-2, -2],
         [-1, -1]]), array([[-3, -2],
         [-3, -2],
         [-3, -2]])))
overwriting array orthogonal indexer=(array([-4, -2, -1]), array([-3, -2]))
Draw 26: array([[ 6.87366269e+016+5.00000000e-01j,
        -3.70690253e+016-2.21349985e+16j],
       [-6.71764858e+180-2.43448589e+16j,
         6.87398174e+244-2.76452847e+16j],
       [ 2.00000000e-001+1.57956816e+16j,
        -1.00711455e+304-1.00891869e-98j]])
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:393
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1086
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1097
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1373
        /home/runner/work/zarr-python/zarr-python/src/zarr/codecs/sharding.py:1378
        (and 32 more with settings.verbosity >= verbose)

You can reproduce this test case by temporarily adding @reproduce_failure('6.165.10', b'AXicVVJrSFRBFJ65d1e33ZYKgiyKSimmwtDNlO2PjBe2TMPtsbashCmkVqCmuI+QxAe2Gf2NjKAHBEFkGLKG0J+uBZVk9Mt+WCJJlET1Ryys7Zwzd69153HnnJnzne88GJPrJYfhZn1GtL5AMjjDgs2eqHKA0h44GVl5WDJS3nykw3c8kLl1MqZu4QCoPf6EhQlQTtRyuRbxV0uuMHjmXjqlxgDyclE8v67k7OH6wtBpVHMA0gmsv6ipvaKuBcwHzIGnwz+GLt0xey2yHH/MdqUDZ7WDsAk1ebhtxa2YwiIjWcLlTjwJCou8gVaHpSG37nzJe4IUQrKtwFfVKFv2KkYe1p1ggL6cFNRmqRMNXdFxJ/17jPD5eKQVnmUrvw5FoOxrivygQya1/zJOXCTvO1MWisEblcxwrfw3Qp2hOaPycLR34j/LEjTKLWYG3XLpwi2bZOWRJBcYEBin+nC23AIEYckqMZnptKK1a6PJFeAky4q41x84CGYOSagOFS8XRkPE2OJr6BLpb2n6uPSKppnGR9eKCr0iNeYKLCZqHsNrYTS5Qyx+YU6UvhjE7zqheIGnSC9SgwFaY2XX4K+OZ9CFwmxp3tUeyzkhXh/ofH5xZHwDxCWqpz/fHV76+UqkvzNlgwgrbVHUjD58+8HYH6XwPUwwl3VhHnOEPTkLQeRcOfty5OPmETExNXvb7594QgnRqDs0GtQLvbuDVUy68A5TKf9g4pa43ZvwLs2sGsvfmULDO0qMeTJadutB4oYwj9770hnbGINSiLS3dt+61MI7cf/qmkN8vmMeTITR3N+euzS9XZTOZGJy2EkCsqs8kan3b8CdmEt80vO2uU8JM3SzrqK1ujzDRNVZF23juefGhiZ3CDN8ZbKmUi9mfwECQeFT') 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