Skip to content

test_cross_engine_read_write_netcdf3 is now failing on master #2050

Closed
@shoyer

Description

@shoyer

Only on Python 3.5 and 3.6 for now:

=================================== FAILURES ===================================
__________ GenericNetCDFDataTest.test_cross_engine_read_write_netcdf3 __________
self = <xarray.tests.test_backends.GenericNetCDFDataTest testMethod=test_cross_engine_read_write_netcdf3>
    def test_cross_engine_read_write_netcdf3(self):
        data = create_test_data()
        valid_engines = set()
        if has_netCDF4:
            valid_engines.add('netcdf4')
        if has_scipy:
            valid_engines.add('scipy')
    
        for write_engine in valid_engines:
            for format in ['NETCDF3_CLASSIC', 'NETCDF3_64BIT']:
                with create_tmp_file() as tmp_file:
                    data.to_netcdf(tmp_file, format=format,
                                   engine=write_engine)
                    for read_engine in valid_engines:
                        with open_dataset(tmp_file,
>                                         engine=read_engine) as actual:
xarray/tests/test_backends.py:1596: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
xarray/backends/api.py:299: in open_dataset
    autoclose=autoclose)
xarray/backends/netCDF4_.py:280: in open
    ds = opener()
xarray/backends/netCDF4_.py:204: in _open_netcdf4_group
    ds = nc4.Dataset(filename, mode=mode, **kwargs)
netCDF4/_netCDF4.pyx:2015: in netCDF4._netCDF4.Dataset.__init__
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   OSError: [Errno -36] NetCDF: Invalid argument: b'/tmp/tmpu5no_wbf/temp-1157.nc'
netCDF4/_netCDF4.pyx:1636: OSError
___ GenericNetCDFDataTestAutocloseTrue.test_cross_engine_read_write_netcdf3 ____
self = <xarray.tests.test_backends.GenericNetCDFDataTestAutocloseTrue testMethod=test_cross_engine_read_write_netcdf3>
    def test_cross_engine_read_write_netcdf3(self):
        data = create_test_data()
        valid_engines = set()
        if has_netCDF4:
            valid_engines.add('netcdf4')
        if has_scipy:
            valid_engines.add('scipy')
    
        for write_engine in valid_engines:
            for format in ['NETCDF3_CLASSIC', 'NETCDF3_64BIT']:
                with create_tmp_file() as tmp_file:
                    data.to_netcdf(tmp_file, format=format,
                                   engine=write_engine)
                    for read_engine in valid_engines:
                        with open_dataset(tmp_file,
>                                         engine=read_engine) as actual:
xarray/tests/test_backends.py:1596: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
xarray/backends/api.py:299: in open_dataset
    autoclose=autoclose)
xarray/backends/netCDF4_.py:280: in open
    ds = opener()
xarray/backends/netCDF4_.py:204: in _open_netcdf4_group
    ds = nc4.Dataset(filename, mode=mode, **kwargs)
netCDF4/_netCDF4.pyx:2015: in netCDF4._netCDF4.Dataset.__init__
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
>   ???
E   OSError: [Errno -36] NetCDF: Invalid argument: b'/tmp/tmp9ak1v4wj/temp-1238.nc'
netCDF4/_netCDF4.pyx:1636: OSError

Here's the diff of conda packages:

--- broken.txt	2018-04-10 11:22:39.400835307 -0700
+++ works.txt	2018-04-10 11:23:12.840755416 -0700
@@ -9,2 +9,2 @@
-boto3                     1.7.2                      py_0    conda-forge
-botocore                  1.10.2                     py_0    conda-forge
+boto3                     1.7.0                      py_0    conda-forge
+botocore                  1.10.1                     py_0    conda-forge
@@ -23 +23 @@
-curl                      7.59.0                        1    conda-forge
+curl                      7.59.0                        0    conda-forge
@@ -29 +29 @@
-distributed               1.21.6                   py36_0    conda-forge
+distributed               1.21.5                   py36_0    conda-forge
@@ -62 +62 @@
-libgdal                   2.2.4                         1    conda-forge
+libgdal                   2.2.4                         0    conda-forge
@@ -66 +66 @@
-libnetcdf                 4.5.0                         3    conda-forge
+libnetcdf                 4.4.1.1                      10    conda-forge
@@ -83 +83 @@
-netcdf4                   1.3.1                    py36_2    conda-forge
+netcdf4                   1.3.1                    py36_1    conda-forge
@@ -85 +85 @@
-numcodecs                 0.5.5                    py36_0    conda-forge
+numcodecs                 0.5.4                    py36_0    conda-forge
@@ -131 +131 @@
-tornado                   5.0.2                    py36_0    conda-forge
+tornado                   5.0.1                    py36_1    conda-forge

The culprit is almost certainly libnetcdf 4.4.1.1 -> 4.5.0

It looks like it's basically this issue again: Unidata/netcdf-c#657

We could fix this either by skipping the tests in xarray's CI or upgrading netCDF-C on conda forge to 4.6.0 or 4.6.1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions