#1145452 kerchunk: FTBFS: E ValueError: Chunk size must be positive, got 0

#1145452#5
Date:
2026-08-25 10:15:20 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:kerchunk, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <AsyncGroup <FsspecStore(ReferenceFileSystem, /)>>, key = 'FP_line'

    async def getitem(
        self,
        key: str,
    ) -> AnyAsyncArray | AsyncGroup:
        """
        Get a subarray or subgroup from the group.

        Parameters
        ----------
        key : str
            Array or group name

        Returns
        -------
        AsyncArray or AsyncGroup
        """
        store_path = self.store_path / key
        logger.debug("key=%s, store_path=%s", key, store_path)

        # Consolidated metadata lets us avoid some I/O operations so try that first.
        if self.metadata.consolidated_metadata is not None:
            return self._getitem_consolidated(store_path, key, prefix=self.name)
        try:
            return await get_node(
                store=store_path.store, path=store_path.path, zarr_format=self.metadata.zarr_format
            )
        except FileNotFoundError as e:
/usr/lib/python3/dist-packages/zarr/core/group.py:737: KeyError

During handling of the above exception, another exception occurred:

    def test1():
        here = os.path.dirname(__file__)
        fn = os.path.join(here, "MOD14.hdf4")
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

../../../tests/test_hdf4.py:13:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
kerchunk/hdf4.py:149: in translate
    arr = g.require_array(
/usr/lib/python3/dist-packages/zarr/core/group.py:2823: in require_array
    return Array(self._sync(self._async_group.require_array(name, shape=shape, **kwargs)))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/zarr/core/sync.py:199: in _sync
    return sync(
/usr/lib/python3/dist-packages/zarr/core/sync.py:154: in sync
    raise return_result
/usr/lib/python3/dist-packages/zarr/core/sync.py:114: in _runner
    return await coro
           ^^^^^^^^^^
/usr/lib/python3/dist-packages/zarr/core/group.py:1268: in require_array
    ds = await self.create_array(name, shape=shape, dtype=dtype, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/zarr/core/group.py:1199: in create_array
    return await create_array(
/usr/lib/python3/dist-packages/zarr/core/array.py:4743: in create_array
    return await init_array(
/usr/lib/python3/dist-packages/zarr/core/array.py:4476: in init_array
    chunks_normalized = normalize_chunks_nd(chunks, shape_parsed)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/zarr/core/chunk_grids.py:800: in normalize_chunks_nd
    tuple(normalize_chunks_1d(c, span=s) for c, s in zip(chunks, shape, strict=True))
    ^^^^^
/usr/lib/python3/dist-packages/zarr/core/chunk_grids.py:800: in <genexpr>
    tuple(normalize_chunks_1d(c, span=s) for c, s in zip(chunks, shape, strict=True))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

chunks = 0, span = 0

    def normalize_chunks_1d(
        chunks: int | Iterable[object], span: int
    ) -> np.ndarray[tuple[int], np.dtype[np.int64]]:
        """
        Normalize a one-dimensional chunk specification into a 1D int64 array of
        chunk sizes that cover the span.

        `-1` means "one chunk covering the entire span."
        For an integer chunk size, all chunks are uniform — the last chunk may
        overhang the span. The actual data extent of each chunk is determined
        by the chunk grid at runtime, not by this function.
        """
        if chunks == -1:
            return np.array([span], dtype=np.int64)
        if isinstance(chunks, int):
            if chunks <= 0:
/usr/lib/python3/dist-packages/zarr/core/chunk_grids.py:736: ValueError
=============================== warnings summary ===============================
../../../../../../usr/lib/python3/dist-packages/_pytest/config/__init__.py:1464
  /usr/lib/python3/dist-packages/_pytest/config/__init__.py:1464: PytestConfigWarning: Unknown config option: asyncio_default_fixture_loop_scope

    self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")

../../../tests/test_fits.py:18
  /<<PKGBUILDDIR>>/tests/test_fits.py:18: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../tests/test_fits.py:43
  /<<PKGBUILDDIR>>/tests/test_fits.py:43: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../tests/test_grib.py:57
  /<<PKGBUILDDIR>>/tests/test_grib.py:57: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../tests/test_grib.py:287
  /<<PKGBUILDDIR>>/tests/test_grib.py:287: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../tests/test_grib.py:305
  /<<PKGBUILDDIR>>/tests/test_grib.py:305: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../../../../usr/lib/python3/dist-packages/h5py/_debian_h5py_serial/__init__.py:36
  /usr/lib/python3/dist-packages/h5py/_debian_h5py_serial/__init__.py:36: UserWarning: h5py is running against HDF5 2.2.0 when it was built against 2.1.0, this may cause problems
    _warn(("h5py is running against HDF5 {0} when it was built against {1}, "

../../../tests/test_hdf.py:24
  /<<PKGBUILDDIR>>/tests/test_hdf.py:24: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../tests/test_hdf.py:45
  /<<PKGBUILDDIR>>/tests/test_hdf.py:45: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

../../../tests/test_hdf.py:87
  /<<PKGBUILDDIR>>/tests/test_hdf.py:87: PytestUnknownMarkWarning: Unknown pytest.mark.remotedata - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
    @pytest.mark.remotedata

tests/test_combine.py::test_fixture
  /<<PKGBUILDDIR>>/tests/test_combine.py:251: ZarrUserWarning: fs (<fsspec.implementations.reference.ReferenceFileSystem object at 0x7f5803158cd0>) was not created with `asynchronous=True`, this may lead to surprising behavior
    store = zarr.storage.FsspecStore(fs)

tests/test_combine.py::test_fixture
  /usr/lib/python3/dist-packages/zarr/storage/_fsspec.py:258: ZarrUserWarning: fs (<fsspec.implementations.reference.ReferenceFileSystem object at 0x7f5803158cd0>) was not created with `asynchronous=True`, this may lead to surprising behavior
    return type(self)(

tests/test_combine.py::test_chunk_error
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_kerchunk/build/kerchunk/combine.py:403: UserWarning: Concatenated coordinate 'time' contains less than expectednumber of values across the datasets: [1]
    warnings.warn(

tests/test_grib.py::test_grib_tree
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_kerchunk/build/kerchunk/combine.py:403: UserWarning: Concatenated coordinate 'time' contains less than expectednumber of values across the datasets: [1665709200]
    warnings.warn(

tests/test_grib.py::test_grib_tree
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_kerchunk/build/kerchunk/combine.py:403: UserWarning: Concatenated coordinate 'step' contains less than expectednumber of values across the datasets: [0.25]
    warnings.warn(

tests/test_grib.py::test_hrrr_subhf_corrected_grib_tree
tests/test_grib.py::test_hrrr_sfcf_grib_tree
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_kerchunk/build/kerchunk/combine.py:403: UserWarning: Concatenated coordinate 'time' contains less than expectednumber of values across the datasets: [1695862800]
    warnings.warn(