Bug 2113663 - python-xarray: FTBFS in Fedora rawhide/f37
Summary: python-xarray: FTBFS in Fedora rawhide/f37
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-xarray
Version: 37
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Elliott Sales de Andrade
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F37FTBFS F38FTBFS 2131120 F39FTBFS
TreeView+ depends on / blocked
 
Reported: 2022-08-02 00:10 UTC by Fedora Release Engineering
Modified: 2023-05-17 01:30 UTC (History)
6 users (show)

Fixed In Version: python-xarray-2023.4.2-2.fc37 python-xarray-2023.4.2-2.fc38
Clone Of:
Environment:
Last Closed: 2023-05-17 01:11:21 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
build.log (32.00 KB, text/plain)
2022-08-02 00:10 UTC, Fedora Release Engineering
no flags Details
root.log (32.00 KB, text/plain)
2022-08-02 00:10 UTC, Fedora Release Engineering
no flags Details
state.log (1017 bytes, text/plain)
2022-08-02 00:10 UTC, Fedora Release Engineering
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github pydata xarray issues 6854 0 None open test_open_nczarr uses too much memory 2022-08-30 23:26:53 UTC
Github pydata xarray issues 6941 0 None open ⚠️ Nightly upstream-dev CI failed ⚠️ 2022-08-30 23:26:53 UTC

Description Fedora Release Engineering 2022-08-02 00:10:19 UTC
python-xarray failed to build from source in Fedora rawhide/f37

https://koji.fedoraproject.org/koji/taskinfo?taskID=89893045


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Please fix python-xarray at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
python-xarray will be orphaned. Before branching of Fedora 38,
python-xarray will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/

Comment 1 Fedora Release Engineering 2022-08-02 00:10:21 UTC
Created attachment 1902408 [details]
build.log

file build.log too big, will only attach last 32768 bytes

Comment 2 Fedora Release Engineering 2022-08-02 00:10:23 UTC
Created attachment 1902409 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2022-08-02 00:10:24 UTC
Created attachment 1902410 [details]
state.log

Comment 4 Tomáš Hrnčiar 2022-08-09 10:44:23 UTC
Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 37.
Action is required from you.

PYC magic number has changed in Python 3.11.0b4, and all packages with Python
bytecode need to be
rebuilt. Most of them were rebuilt during the Fedora 37 mass rebuild, but since
this
package is FTBFS, we were hoping you could fix it and rebuild it manually, or
it will cause subtle issues when used.

Tracking bugzilla for all affected packages:
https://bugzilla.redhat.com/show_bug.cgi?id=2107826

If you can fix your package to build, perform a build in koji, and if
necessary, create
an update in bodhi. If you are working on a fix, set the status to ASSIGNED to
acknowledge this. If you have already fixed this issue, please close this
Bugzilla report.

Note that Fedora 37 is about to be branched very soon.
If you fix this after branching, make sure to rebuild the package in both
Rawhide (Fedora 38) and Fedora 37.

==============================================

Following the policy for FTBFS packages [1], your package will be orphaned if
this bug remains in a NEW state for more than 8 weeks (not sooner than
2022-09-27).

A week before the mass branching of Fedora 38 according to the
schedule [2],
any packages not successfully rebuilt, at least on Fedora 36 will
be
retired regardless of the status of this bug.

[1]
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
[2]
https://fedorapeople.org/groups/schedule/f-38/f-38-key-tasks.html

Comment 5 Ben Cotton 2022-08-09 13:33:09 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle.
Changing version to 37.

Comment 7 Miro Hrončok 2022-08-30 11:24:52 UTC
I've accidentally posted wrong Fedora versions in the previous comment, here is a corrected version:


Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 37.
Action is required from you.

PYC magic number has changed in Python 3.11.0b4, and all packages with Python
bytecode need to be rebuilt. Most of them were rebuilt during the
Fedora 37 mass rebuild, but since this package is FTBFS,
we were hoping you could fix it and rebuild it manually, or
it will cause subtle issues when used.

Tracking bugzilla for all affected packages:
https://bugzilla.redhat.com/show_bug.cgi?id=2107826

If you can fix your package to build, perform a build in koji, and if
necessary, create an update in bodhi.
If you are working on a fix, set the status to ASSIGNED to
acknowledge this. If you have already fixed this issue, please close this
Bugzilla report.

Make sure to rebuild the package in both Rawhide (Fedora 38) and Fedora 37.

==============================================

Following the policy for FTBFS packages [1], your package will be orphaned if
this bug remains in a NEW state for more than 8 weeks (not sooner than 
2022-09-27).

A week before the mass branching of Fedora 38 according to the
schedule [2],
any packages not successfully rebuilt, at least on Fedora 36 will
be
retired regardless of the status of this bug.

[1]
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
[2]
https://fedorapeople.org/groups/schedule/f-38/f-38-key-tasks.html

Comment 8 Zbigniew Jędrzejewski-Szmek 2022-09-16 09:36:36 UTC
This is now preventing upgrades to F37:

 Problem 2: cannot install both python3-numpy-1:1.22.0-7.fc37.x86_64 and python3-numpy-1:1.22.0-2.fc36.x86_64
  - package python3-xarray-2022.6.0-1.fc36.noarch requires python3.10dist(numpy) >= 1.19, but none of the providers can be installed
  - cannot install the best update candidate for package python3-numpy-1:1.22.0-2.fc36.x86_64
  - problem with installed package python3-xarray-2022.6.0-1.fc36.noarch
 Problem 3: package python3-xarray-2022.6.0-1.fc36.noarch requires python3.10dist(packaging) >= 20, but none of the providers can be installed
  - cannot install both python3-packaging-21.3-6.fc37.noarch and python3-packaging-21.3-2.fc36.noarch
  - cannot install the best update candidate for package python3-xarray-2022.6.0-1.fc36.noarch
  - cannot install the best update candidate for package python3-packaging-21.3-2.fc36.noarch

Comment 9 Miro Hrončok 2022-09-16 13:16:16 UTC
The version in Fedora 37 is python3-xarray-0:2022.3.0-2.fc37.noarch and it installs just fine. I wonder how are you trying to upgrade? a distro-sync or fedora upgrade should downgrade.

Comment 10 Zbigniew Jędrzejewski-Szmek 2022-09-16 13:20:57 UTC
I was trying to upgrade with 'dnf upgrade --releasever=…'.

Comment 11 Miro Hrončok 2022-09-16 13:26:01 UTC
That is not a supported way of upgrading to Fedora 37.

You only get the errors because the F37 version is lower than the F36 version, which can occasionally happen.

Use distro-sync or https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/

Comment 12 Elliott Sales de Andrade 2022-09-17 08:39:40 UTC
Orion, do you have any ideas where this might be from? This builds fine on F36 with netcdf 4.8.1, and fails on F37 with netcdf 4.9.0. If I backport 4.9.0, then the test_open_nczarr test runs out of memory on F36 as well.

Unfortunately, upstream hasn't said anything on my bug report so far.

Comment 13 Elliott Sales de Andrade 2022-09-25 06:50:24 UTC
Koschei tells me that 2022.3.0 is building again; this is due to a python-netcdf4 bugfix update from 1.6.0-2.fc37 to 1.6.1-1.fc38. While going back to that commit does build, the latest version is still broken due to the netcdf OOM.

Comment 14 Fedora Update System 2022-09-25 08:10:03 UTC
FEDORA-2022-ddd090478b has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-ddd090478b

Comment 15 Fedora Update System 2022-09-26 02:43:49 UTC
FEDORA-2022-ddd090478b has been pushed to the Fedora 37 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-ddd090478b`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-ddd090478b

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2022-10-03 00:17:30 UTC
FEDORA-2022-ddd090478b has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 17 Elliott Sales de Andrade 2022-10-03 01:11:37 UTC
The attached build is simply a rebuild to fix the .pyc bytecode change, so this no longer blocks that bug.

Unfortunately, the general issue that this is FTBFS in the latest version is still true.

Comment 18 Ben Beasley 2022-12-15 19:48:01 UTC
Is there a plan to work around the FTBFS?

Successfully building at least 2022.6.0 (to match F36) in F37 and Rawhide would be really useful, since this would fix an incompatibility[1] with current versions of python-pandas. We just “un-broke” python-pandas with an update in Rawhide, and we are planning one for F37 as well since the version of Pandas that shipped with F37 does not properly support Python 3.11.

Please let me know if there is anything I can do to help. Thanks!

[1] https://src.fedoraproject.org/rpms/python-pandas/pull-request/13#comment-122276

Comment 19 Orion Poplawski 2022-12-17 02:11:32 UTC
My sense is that it should be fine to disable the failing test.  I don't see the "noxarray" mode used anywhere else but that test, so I don't think that it's terribly likely to get triggered by python-xarray elsewhere.

Comment 20 Elliott Sales de Andrade 2022-12-18 01:05:08 UTC
Thanks to @orion for distilling the issue, it appears that this might be fixed upstream soon. I can skip the test, but it looks like it might be fixed within a couple days?

Comment 21 Orion Poplawski 2022-12-22 04:16:45 UTC
This should now be fixed in netcdf-4.9.0-4.fc38

Comment 22 Ben Beasley 2022-12-22 18:02:57 UTC
I tried a scratch build in Rawhide, explicitly building on all builder architectures even though the package is noarch:

https://koji.fedoraproject.org/koji/taskinfo?taskID=95608625





x86_64, ppc64le, and aarch64 failed as follows (this exact text pasted from x86_64):

=================================== FAILURES ===================================
_________________________ TestNCZarr.test_open_nczarr __________________________
[gw2] linux -- Python 3.11.1 /usr/bin/python3
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
>           dimensions = zarr_obj.attrs[dimension_key]
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:191: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <zarr.attrs.Attributes object at 0x7ffa37811310>
item = '_ARRAY_DIMENSIONS'
    def __getitem__(self, item):
>       return self.asdict()[item]
E       KeyError: '_ARRAY_DIMENSIONS'
/usr/lib/python3.11/site-packages/zarr/attrs.py:74: KeyError
During handling of the above exception, another exception occurred:
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
            dimensions = zarr_obj.attrs[dimension_key]
        except KeyError as e:
            if not try_nczarr:
                raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}`, which is "
                    "required for xarray to determine variable dimensions."
                ) from e
    
            # NCZarr defines dimensions through metadata in .zarray
            zarray_path = os.path.join(zarr_obj.path, ".zarray")
            zarray = json.loads(zarr_obj.store[zarray_path])
            try:
                # NCZarr uses Fully Qualified Names
                dimensions = [
>                   os.path.basename(dim) for dim in zarray["_NCZARR_ARRAY"]["dimrefs"]
                ]
E               KeyError: '_NCZARR_ARRAY'
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:205: KeyError
The above exception was the direct cause of the following exception:
self = <xarray.tests.test_backends.TestNCZarr object at 0x7ffa3fc51710>
    def test_open_nczarr(self):
        with create_tmp_file(suffix=".zarr") as tmp:
            expected = self._create_nczarr(tmp)
>           actual = xr.open_zarr(tmp, consolidated=False)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:5538: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:789: in open_zarr
    ds = open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/api.py:531: in open_dataset
    backend_ds = backend.open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:851: in open_dataset
    ds = store_entrypoint.open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/store.py:26: in open_dataset
    vars, attrs = store.load()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/common.py:125: in load
    (_decode_variable_name(k), v) for k, v in self.get_variables().items()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:461: in get_variables
    return FrozenDict(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/core/utils.py:474: in FrozenDict
    return Frozen(dict(*args, **kwargs))
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:462: in <genexpr>
    (k, self.open_store_variable(k, v)) for k, v in self.zarr_group.arrays()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:443: in open_store_variable
    dimensions, attributes = _get_zarr_dims_and_attrs(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
            dimensions = zarr_obj.attrs[dimension_key]
        except KeyError as e:
            if not try_nczarr:
                raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}`, which is "
                    "required for xarray to determine variable dimensions."
                ) from e
    
            # NCZarr defines dimensions through metadata in .zarray
            zarray_path = os.path.join(zarr_obj.path, ".zarray")
            zarray = json.loads(zarr_obj.store[zarray_path])
            try:
                # NCZarr uses Fully Qualified Names
                dimensions = [
                    os.path.basename(dim) for dim in zarray["_NCZARR_ARRAY"]["dimrefs"]
                ]
            except KeyError as e:
>               raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}` and the NCZarr metadata, "
                    "which are required for xarray to determine variable dimensions."
                ) from e
E               KeyError: 'Zarr object is missing the attribute `_ARRAY_DIMENSIONS` and the NCZarr metadata, which are required for xarray to determine variable dimensions.'
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.x86_64/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:208: KeyError





i686 failed as follows:

=================================== FAILURES ===================================
__________________ TestZarrDictStore.test_orthogonal_indexing __________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDictStore object at 0xc581da70>
    def test_orthogonal_indexing(self):
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            indexers = {"dim1": [1, 2, 0], "dim2": [3, 2, 0, 3], "dim3": np.arange(5)}
            expected = in_memory.isel(**indexers)
            actual = on_disk.isel(**indexers)
            # make sure the array is not yet loaded into memory
            assert not actual["var1"].variable._in_memory
>           assert_identical(expected, actual)
E           AssertionError: Left and right Dataset objects are not identical
E           
E           Differing coordinates:
E           L   numbers  (dim3) int64 0 1 2 0 0
E           R   numbers  (dim3) int64 ...
E           L * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           R * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           Differing data variables:
E           L   var1     (dim1, dim2) float64 -1.373 -1.317 1.149 ... -0.3138 -0.4695 -1.448
E               foo: variable
E           R   var1     (dim1, dim2) float64 ...
E               foo: variable
E           L   var2     (dim1, dim2) float64 0.5125 0.5583 2.089 ... 0.2081 0.07388 0.4444
E               foo: variable
E           R   var2     (dim1, dim2) float64 ...
E               foo: variable
E           L   var3     (dim3, dim1) float64 -0.004227 -1.812 1.438 ... 0.1854 0.9767 1.724
E               foo: variable
E           R   var3     (dim3, dim1) float64 ...
E               foo: variable
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:620: AssertionError
__________________ TestZarrDictStore.test_vectorized_indexing __________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDictStore object at 0xc581d6d0>
    def test_vectorized_indexing(self):
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            indexers = {
                "dim1": DataArray([0, 2, 0], dims="a"),
                "dim2": DataArray([0, 2, 3], dims="a"),
            }
            expected = in_memory.isel(**indexers)
            actual = on_disk.isel(**indexers)
            # make sure the array is not yet loaded into memory
            assert not actual["var1"].variable._in_memory
>           assert_identical(expected, actual.load())
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:637: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/dataset.py:741: in load
    v.load()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/variable.py:461: in load
    self._data = np.asarray(self._data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:653: in __array__
    self._ensure_cached()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:650: in _ensure_cached
    self.array = NumpyIndexingAdapter(np.asarray(self.array))
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:623: in __array__
    return np.asarray(self.array, dtype=dtype)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:524: in __array__
    return np.asarray(array[self.key], dtype=None)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:83: in __getitem__
    return array.oindex[key.tuple]
/usr/lib/python3.11/site-packages/zarr/indexing.py:669: in __getitem__
    return self.array.get_orthogonal_selection(selection, fields=fields)
/usr/lib/python3.11/site-packages/zarr/core.py:1085: in get_orthogonal_selection
    indexer = OrthogonalIndexer(selection, self)
/usr/lib/python3.11/site-packages/zarr/indexing.py:612: in __init__
    dim_indexer = IntArrayDimIndexer(dim_sel, dim_len, dim_chunk_len)
/usr/lib/python3.11/site-packages/zarr/indexing.py:511: in __init__
    self.chunk_nitems = np.bincount(dim_sel_chunk, minlength=self.nchunks)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
args = (array([0, 0, 0], dtype=int64),), kwargs = {'minlength': 1}
relevant_args = (array([0, 0, 0], dtype=int64), None)
>   ???
E   TypeError: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'
<__array_function__ internals>:180: TypeError
____________________ TestZarrDictStore.test_isel_dataarray _____________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDictStore object at 0xc581d7b0>
    def test_isel_dataarray(self):
        # Make sure isel works lazily. GH:issue:1688
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            expected = in_memory.isel(dim2=in_memory["dim2"] < 3)
            actual = on_disk.isel(dim2=on_disk["dim2"] < 3)
>           assert_identical(expected, actual)
E           AssertionError: Left and right Dataset objects are not identical
E           
E           
E           Differing data variables:
E           L   var1     (dim1, dim2) float64 0.6988 0.1573 -0.554 ... 0.7912 -1.046 0.02209
E               foo: variable
E           R   var1     (dim1, dim2) float64 ...
E               foo: variable
E           L   var2     (dim1, dim2) float64 0.464 -0.5322 0.5399 ... 0.4736 0.5844 0.4045
E               foo: variable
E           R   var2     (dim1, dim2) float64 ...
E               foo: variable
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:737: AssertionError
_______________ TestZarrDictStore.test_array_type_after_indexing _______________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDictStore object at 0xc581d570>
    def test_array_type_after_indexing(self):
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            self.validate_array_type(on_disk)
            indexers = {"dim1": [1, 2, 0], "dim2": [3, 2, 0, 3], "dim3": np.arange(5)}
            expected = in_memory.isel(**indexers)
            actual = on_disk.isel(**indexers)
>           assert_identical(expected, actual)
E           AssertionError: Left and right Dataset objects are not identical
E           
E           Differing coordinates:
E           L   numbers  (dim3) int64 0 1 2 0 0
E           R   numbers  (dim3) int64 ...
E           L * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           R * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           Differing data variables:
E           L   var1     (dim1, dim2) float64 0.1602 -0.2531 0.8112 ... 0.9797 0.5708
E               foo: variable
E           R   var1     (dim1, dim2) float64 ...
E               foo: variable
E           L   var2     (dim1, dim2) float64 -0.956 -1.348 -0.3787 ... 0.2419 -0.6465
E               foo: variable
E           R   var2     (dim1, dim2) float64 ...
E               foo: variable
E           L   var3     (dim3, dim1) float64 0.2496 0.6502 -0.2617 ... -1.013 1.364 -2.242
E               foo: variable
E           R   var3     (dim3, dim1) float64 ...
E               foo: variable
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:766: AssertionError
_______________ TestZarrDirectoryStore.test_orthogonal_indexing ________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDirectoryStore object at 0xc4f03ef0>
    def test_orthogonal_indexing(self):
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            indexers = {"dim1": [1, 2, 0], "dim2": [3, 2, 0, 3], "dim3": np.arange(5)}
            expected = in_memory.isel(**indexers)
            actual = on_disk.isel(**indexers)
            # make sure the array is not yet loaded into memory
            assert not actual["var1"].variable._in_memory
>           assert_identical(expected, actual)
E           AssertionError: Left and right Dataset objects are not identical
E           
E           Differing coordinates:
E           L   numbers  (dim3) int64 0 1 2 0 0
E           R   numbers  (dim3) int64 ...
E           L * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           R * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           Differing data variables:
E           L   var1     (dim1, dim2) float64 1.766 -0.506 -2.01 ... 2.122 -0.06747 0.04349
E               foo: variable
E           R   var1     (dim1, dim2) float64 ...
E               foo: variable
E           L   var2     (dim1, dim2) float64 0.7381 -1.56 0.4215 ... 0.9335 -0.0925 -1.461
E               foo: variable
E           R   var2     (dim1, dim2) float64 ...
E               foo: variable
E           L   var3     (dim3, dim1) float64 -0.2059 0.6264 -2.014 ... -0.9723 1.13 0.6689
E               foo: variable
E           R   var3     (dim3, dim1) float64 ...
E               foo: variable
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:620: AssertionError
_______________ TestZarrDirectoryStore.test_vectorized_indexing ________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDirectoryStore object at 0xc4f03450>
    def test_vectorized_indexing(self):
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            indexers = {
                "dim1": DataArray([0, 2, 0], dims="a"),
                "dim2": DataArray([0, 2, 3], dims="a"),
            }
            expected = in_memory.isel(**indexers)
            actual = on_disk.isel(**indexers)
            # make sure the array is not yet loaded into memory
            assert not actual["var1"].variable._in_memory
>           assert_identical(expected, actual.load())
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:637: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/dataset.py:741: in load
    v.load()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/variable.py:461: in load
    self._data = np.asarray(self._data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:653: in __array__
    self._ensure_cached()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:650: in _ensure_cached
    self.array = NumpyIndexingAdapter(np.asarray(self.array))
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:623: in __array__
    return np.asarray(self.array, dtype=dtype)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/indexing.py:524: in __array__
    return np.asarray(array[self.key], dtype=None)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:83: in __getitem__
    return array.oindex[key.tuple]
/usr/lib/python3.11/site-packages/zarr/indexing.py:669: in __getitem__
    return self.array.get_orthogonal_selection(selection, fields=fields)
/usr/lib/python3.11/site-packages/zarr/core.py:1085: in get_orthogonal_selection
    indexer = OrthogonalIndexer(selection, self)
/usr/lib/python3.11/site-packages/zarr/indexing.py:612: in __init__
    dim_indexer = IntArrayDimIndexer(dim_sel, dim_len, dim_chunk_len)
/usr/lib/python3.11/site-packages/zarr/indexing.py:511: in __init__
    self.chunk_nitems = np.bincount(dim_sel_chunk, minlength=self.nchunks)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
args = (array([0, 0, 0], dtype=int64),), kwargs = {'minlength': 1}
relevant_args = (array([0, 0, 0], dtype=int64), None)
>   ???
E   TypeError: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'
<__array_function__ internals>:180: TypeError
__________________ TestZarrDirectoryStore.test_isel_dataarray __________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDirectoryStore object at 0xc4f03110>
    def test_isel_dataarray(self):
        # Make sure isel works lazily. GH:issue:1688
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            expected = in_memory.isel(dim2=in_memory["dim2"] < 3)
            actual = on_disk.isel(dim2=on_disk["dim2"] < 3)
>           assert_identical(expected, actual)
E           AssertionError: Left and right Dataset objects are not identical
E           
E           
E           Differing data variables:
E           L   var1     (dim1, dim2) float64 0.3578 -1.19 0.2357 ... 0.002021 -0.5538
E               foo: variable
E           R   var1     (dim1, dim2) float64 ...
E               foo: variable
E           L   var2     (dim1, dim2) float64 1.573 -0.2327 0.2802 ... -0.3649 -0.411 0.7878
E               foo: variable
E           R   var2     (dim1, dim2) float64 ...
E               foo: variable
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:737: AssertionError
____________ TestZarrDirectoryStore.test_array_type_after_indexing _____________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_backends.TestZarrDirectoryStore object at 0xc4f03550>
    def test_array_type_after_indexing(self):
        in_memory = create_test_data()
        with self.roundtrip(in_memory) as on_disk:
            self.validate_array_type(on_disk)
            indexers = {"dim1": [1, 2, 0], "dim2": [3, 2, 0, 3], "dim3": np.arange(5)}
            expected = in_memory.isel(**indexers)
            actual = on_disk.isel(**indexers)
>           assert_identical(expected, actual)
E           AssertionError: Left and right Dataset objects are not identical
E           
E           Differing coordinates:
E           L   numbers  (dim3) int64 0 1 2 0 0
E           R   numbers  (dim3) int64 ...
E           L * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           R * dim3     (dim3) <U1 'a' 'b' 'c' 'd' 'e'
E           Differing data variables:
E           L   var1     (dim1, dim2) float64 1.457 -1.071 -1.108 ... -0.5815 2.554 0.1173
E               foo: variable
E           R   var1     (dim1, dim2) float64 ...
E               foo: variable
E           L   var2     (dim1, dim2) float64 -0.1101 -0.3866 -0.4068 ... 1.244 -1.023
E               foo: variable
E           R   var2     (dim1, dim2) float64 ...
E               foo: variable
E           L   var3     (dim3, dim1) float64 0.5792 -0.4506 0.3728 ... -2.386 0.0824 1.241
E               foo: variable
E           R   var3     (dim3, dim1) float64 ...
E               foo: variable
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:766: AssertionError
_________________________ TestNCZarr.test_open_nczarr __________________________
[gw2] linux -- Python 3.11.1 /usr/bin/python3
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
>           dimensions = zarr_obj.attrs[dimension_key]
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:191: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <zarr.attrs.Attributes object at 0xc3852d70>, item = '_ARRAY_DIMENSIONS'
    def __getitem__(self, item):
>       return self.asdict()[item]
E       KeyError: '_ARRAY_DIMENSIONS'
/usr/lib/python3.11/site-packages/zarr/attrs.py:74: KeyError
During handling of the above exception, another exception occurred:
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
            dimensions = zarr_obj.attrs[dimension_key]
        except KeyError as e:
            if not try_nczarr:
                raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}`, which is "
                    "required for xarray to determine variable dimensions."
                ) from e
    
            # NCZarr defines dimensions through metadata in .zarray
            zarray_path = os.path.join(zarr_obj.path, ".zarray")
            zarray = json.loads(zarr_obj.store[zarray_path])
            try:
                # NCZarr uses Fully Qualified Names
                dimensions = [
>                   os.path.basename(dim) for dim in zarray["_NCZARR_ARRAY"]["dimrefs"]
                ]
E               KeyError: '_NCZARR_ARRAY'
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:205: KeyError
The above exception was the direct cause of the following exception:
self = <xarray.tests.test_backends.TestNCZarr object at 0xc5697a50>
    def test_open_nczarr(self):
        with create_tmp_file(suffix=".zarr") as tmp:
            expected = self._create_nczarr(tmp)
>           actual = xr.open_zarr(tmp, consolidated=False)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:5538: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:789: in open_zarr
    ds = open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/api.py:531: in open_dataset
    backend_ds = backend.open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:851: in open_dataset
    ds = store_entrypoint.open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/store.py:26: in open_dataset
    vars, attrs = store.load()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/common.py:125: in load
    (_decode_variable_name(k), v) for k, v in self.get_variables().items()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:461: in get_variables
    return FrozenDict(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/core/utils.py:474: in FrozenDict
    return Frozen(dict(*args, **kwargs))
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:462: in <genexpr>
    (k, self.open_store_variable(k, v)) for k, v in self.zarr_group.arrays()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:443: in open_store_variable
    dimensions, attributes = _get_zarr_dims_and_attrs(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
            dimensions = zarr_obj.attrs[dimension_key]
        except KeyError as e:
            if not try_nczarr:
                raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}`, which is "
                    "required for xarray to determine variable dimensions."
                ) from e
    
            # NCZarr defines dimensions through metadata in .zarray
            zarray_path = os.path.join(zarr_obj.path, ".zarray")
            zarray = json.loads(zarr_obj.store[zarray_path])
            try:
                # NCZarr uses Fully Qualified Names
                dimensions = [
                    os.path.basename(dim) for dim in zarray["_NCZARR_ARRAY"]["dimrefs"]
                ]
            except KeyError as e:
>               raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}` and the NCZarr metadata, "
                    "which are required for xarray to determine variable dimensions."
                ) from e
E               KeyError: 'Zarr object is missing the attribute `_ARRAY_DIMENSIONS` and the NCZarr metadata, which are required for xarray to determine variable dimensions.'
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.i386/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:208: KeyError






s390x failed as follows:

=================================== FAILURES ===================================
_______________________ test_calendar_cftime_2D[365_day] _______________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
_______________________ test_calendar_cftime_2D[360_day] _______________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
_______________________ test_calendar_cftime_2D[julian] ________________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
______________________ test_calendar_cftime_2D[all_leap] _______________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
_______________________ test_calendar_cftime_2D[366_day] _______________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
______________________ test_calendar_cftime_2D[gregorian] ______________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
_________________ test_calendar_cftime_2D[proleptic_gregorian] _________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
data = <xarray.DataArray 'data' (lon: 10, lat: 10, time: 100)>
array([[[0.5488135 , 0.71518937, 0.60276338, ..., 0.02010755,
...0.0 2.222 4.444 6.667 ... 13.33 15.56 17.78 20.0
  * time     (time) object 2000-01-01 00:00:00 ... 2000-01-05 03:00:00
    @requires_cftime
    def test_calendar_cftime_2D(data) -> None:
        # 2D np datetime:
>       data = xr.DataArray(
            np.random.randint(1, 1000000, size=(4, 5)).astype("<M8[h]"), dims=("x", "y")
        )
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_accessor_dt.py:428: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/dataarray.py:411: in __init__
    data = as_compatible_data(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:249: in as_compatible_data
    data = _possibly_convert_objects(data)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/variable.py:191: in _possibly_convert_objects
    return np.asarray(pd.Series(values.ravel())).reshape(values.shape)
/usr/lib64/python3.11/site-packages/pandas/core/series.py:470: in __init__
    data = sanitize_array(data, index, dtype, copy)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:597: in sanitize_array
    subarr = _try_cast(data, dtype, copy, raise_cast_failure)
/usr/lib64/python3.11/site-packages/pandas/core/construction.py:775: in _try_cast
    return sanitize_to_nanoseconds(arr, copy=copy)
/usr/lib64/python3.11/site-packages/pandas/core/dtypes/cast.py:1428: in sanitize_to_nanoseconds
    values = astype_overflowsafe(values, dtype=DT64NS_DTYPE)
pandas/_libs/tslibs/np_datetime.pyx:288: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:379: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
pandas/_libs/tslibs/np_datetime.pyx:368: in pandas._libs.tslibs.np_datetime.astype_overflowsafe
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: -809793270280017-04-14 16:00:00
pandas/_libs/tslibs/np_datetime.pyx:212: OutOfBoundsDatetime
_________________________ TestNCZarr.test_open_nczarr __________________________
[gw1] linux -- Python 3.11.1 /usr/bin/python3
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
>           dimensions = zarr_obj.attrs[dimension_key]
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:191: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <zarr.attrs.Attributes object at 0x3ff40a6c950>
item = '_ARRAY_DIMENSIONS'
    def __getitem__(self, item):
>       return self.asdict()[item]
E       KeyError: '_ARRAY_DIMENSIONS'
/usr/lib/python3.11/site-packages/zarr/attrs.py:74: KeyError
During handling of the above exception, another exception occurred:
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
            dimensions = zarr_obj.attrs[dimension_key]
        except KeyError as e:
            if not try_nczarr:
                raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}`, which is "
                    "required for xarray to determine variable dimensions."
                ) from e
    
            # NCZarr defines dimensions through metadata in .zarray
            zarray_path = os.path.join(zarr_obj.path, ".zarray")
            zarray = json.loads(zarr_obj.store[zarray_path])
            try:
                # NCZarr uses Fully Qualified Names
                dimensions = [
>                   os.path.basename(dim) for dim in zarray["_NCZARR_ARRAY"]["dimrefs"]
                ]
E               KeyError: '_NCZARR_ARRAY'
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:205: KeyError
The above exception was the direct cause of the following exception:
self = <xarray.tests.test_backends.TestNCZarr object at 0x3ff492f2e50>
    def test_open_nczarr(self):
        with create_tmp_file(suffix=".zarr") as tmp:
            expected = self._create_nczarr(tmp)
>           actual = xr.open_zarr(tmp, consolidated=False)
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_backends.py:5538: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:789: in open_zarr
    ds = open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/api.py:531: in open_dataset
    backend_ds = backend.open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:851: in open_dataset
    ds = store_entrypoint.open_dataset(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/store.py:26: in open_dataset
    vars, attrs = store.load()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/common.py:125: in load
    (_decode_variable_name(k), v) for k, v in self.get_variables().items()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:461: in get_variables
    return FrozenDict(
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/core/utils.py:474: in FrozenDict
    return Frozen(dict(*args, **kwargs))
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:462: in <genexpr>
    (k, self.open_store_variable(k, v)) for k, v in self.zarr_group.arrays()
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:443: in open_store_variable
    dimensions, attributes = _get_zarr_dims_and_attrs(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
zarr_obj = <zarr.core.Array '/dim2' (9,) float64 read-only>
dimension_key = '_ARRAY_DIMENSIONS', try_nczarr = True
    def _get_zarr_dims_and_attrs(zarr_obj, dimension_key, try_nczarr):
        # Zarr arrays do not have dimensions. To get around this problem, we add
        # an attribute that specifies the dimension. We have to hide this attribute
        # when we send the attributes to the user.
        # zarr_obj can be either a zarr group or zarr array
        try:
            # Xarray-Zarr
            dimensions = zarr_obj.attrs[dimension_key]
        except KeyError as e:
            if not try_nczarr:
                raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}`, which is "
                    "required for xarray to determine variable dimensions."
                ) from e
    
            # NCZarr defines dimensions through metadata in .zarray
            zarray_path = os.path.join(zarr_obj.path, ".zarray")
            zarray = json.loads(zarr_obj.store[zarray_path])
            try:
                # NCZarr uses Fully Qualified Names
                dimensions = [
                    os.path.basename(dim) for dim in zarray["_NCZARR_ARRAY"]["dimrefs"]
                ]
            except KeyError as e:
>               raise KeyError(
                    f"Zarr object is missing the attribute `{dimension_key}` and the NCZarr metadata, "
                    "which are required for xarray to determine variable dimensions."
                ) from e
E               KeyError: 'Zarr object is missing the attribute `_ARRAY_DIMENSIONS` and the NCZarr metadata, which are required for xarray to determine variable dimensions.'
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/backends/zarr.py:208: KeyError
__________________________ TestPandasIndex.test_join ___________________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_indexes.TestPandasIndex object at 0x3ff3f63ecd0>
    def test_join(self) -> None:
        index1 = PandasIndex(["a", "aa", "aaa"], "x", coord_dtype="<U3")
        index2 = PandasIndex(["aa", "aaa", "aaaa"], "x", coord_dtype="<U4")
    
        expected = PandasIndex(["aa", "aaa"], "x")
        actual = index1.join(index2)
        print(actual.index)
        assert actual.equals(expected)
>       assert actual.coord_dtype == "<U4"
E       AssertionError: assert dtype('>U4') == '<U4'
E        +  where dtype('>U4') = <xarray.core.indexes.PandasIndex object at 0x3ff3e3d8eb0>.coord_dtype
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_indexes.py:267: AssertionError
----------------------------- Captured stdout call -----------------------------
Index(['aa', 'aaa'], dtype='object', name='x')
_______________________ TestPandasMultiIndex.test_concat _______________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_indexes.TestPandasMultiIndex object at 0x3ff3f63cf50>
    def test_concat(self) -> None:
        pd_midx = pd.MultiIndex.from_product(
            [[0, 1, 2], ["a", "b"]], names=("foo", "bar")
        )
        level_coords_dtype = {"foo": np.int32, "bar": "<U1"}
    
        midx1 = PandasMultiIndex(
            pd_midx[:2], "x", level_coords_dtype=level_coords_dtype
        )
        midx2 = PandasMultiIndex(
            pd_midx[2:], "x", level_coords_dtype=level_coords_dtype
        )
        expected = PandasMultiIndex(pd_midx, "x", level_coords_dtype=level_coords_dtype)
    
        actual = PandasMultiIndex.concat([midx1, midx2], "x")
        assert actual.equals(expected)
>       assert actual.level_coords_dtype == expected.level_coords_dtype
E       AssertionError: assert {'bar': dtype...type('int32')} == {'bar': '<U1'...numpy.int32'>}
E         Omitting 1 identical items, use -vv to show
E         Differing items:
E         {'bar': dtype('>U1')} != {'bar': '<U1'}
E         Use -v to get more diff
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_indexes.py:395: AssertionError
________________________ TestPandasMultiIndex.test_join ________________________
[gw0] linux -- Python 3.11.1 /usr/bin/python3
self = <xarray.tests.test_indexes.TestPandasMultiIndex object at 0x3ff3f63c490>
    def test_join(self):
        midx = pd.MultiIndex.from_product([["a", "aa"], [1, 2]], names=("one", "two"))
        level_coords_dtype = {"one": "<U2", "two": "i"}
        index1 = PandasMultiIndex(midx, "x", level_coords_dtype=level_coords_dtype)
        index2 = PandasMultiIndex(midx[0:2], "x", level_coords_dtype=level_coords_dtype)
    
        actual = index1.join(index2)
        assert actual.equals(index2)
>       assert actual.level_coords_dtype == level_coords_dtype
E       AssertionError: assert {'one': dtype...type('int32')} == {'one': '<U2', 'two': 'i'}
E         Omitting 1 identical items, use -vv to show
E         Differing items:
E         {'one': dtype('>U2')} != {'one': '<U2'}
E         Use -v to get more diff
/builddir/build/BUILDROOT/python-xarray-2022.6.0-1.fc38.s390x/usr/lib/python3.11/site-packages/xarray/tests/test_indexes.py:493: AssertionError

Comment 23 Elliott Sales de Andrade 2023-01-10 08:24:51 UTC
Bumping to 2022.12.0, and building locally or on koji https://koji.fedoraproject.org/koji/taskinfo?taskID=95955445, I only get one failure in TestNCZarr.test_open_nczarr. But that's the test that was OOMing due to netcdf, so I'm worried there's still a bug somewhere in netcdf.

Comment 24 Fedora Update System 2023-05-08 09:20:43 UTC
FEDORA-2023-dc5dba2e7f has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2023-dc5dba2e7f

Comment 25 Fedora Update System 2023-05-08 09:20:44 UTC
FEDORA-2023-00b3507d1a has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-00b3507d1a

Comment 26 Fedora Update System 2023-05-09 02:38:56 UTC
FEDORA-2023-dc5dba2e7f has been pushed to the Fedora 37 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-dc5dba2e7f`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-dc5dba2e7f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 27 Fedora Update System 2023-05-09 03:16:54 UTC
FEDORA-2023-00b3507d1a has been pushed to the Fedora 38 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-00b3507d1a`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-00b3507d1a

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 28 Fedora Update System 2023-05-17 01:11:21 UTC
FEDORA-2023-dc5dba2e7f has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 29 Fedora Update System 2023-05-17 01:30:35 UTC
FEDORA-2023-00b3507d1a has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.