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
Workflow Run URL
Python 3.13 Test Summary