Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

[netcdfgroup] Bug fix for byte and short variables larger than 4 GiB

Hi,

As first reported by Mario Emmenlauer, there is a bug in netCDF-3.6.2
(and earlier versions) in the code for creating byte and short type
variables greater than 4 GiB in size.

This problem resulted in an assertion violation or arithmetic exception
that would have caused a program to halt, rather than writing bad data
or corrupting existing data.

A fix is available as a patch to the file libsrc/var.c in the
netcdf-3.6.2 distribution from

  http://www.unidata.ucar.edu/software/netcdf/patches/large-vars-362-patch

The bug is also fixed in the latest snapshot release, available from:

  ftp://ftp.unidata.ucar.edu/pub/netcdf/snapshot/netcdf-daily.tar.gz

Here's a detailed description of the symptoms:  

1. On 32-bit platforms (with size_t an unsigned 32-bit type):

   * For a short variable, if the product of dimensions (not counting
     the record dimension, if any) is greater than 2**31 (that's
     2,147,483,648), the following assertion violation occurs:
     
       Assertion failed: remaining > 0, file putget.c, line 347

   * For any type of variable, if the product of dimensions (not
     counting the record dimension, if any) is exactly 2**32 (that's
     4,294,967,296) or any multiple of 2**32, an integer divide by zero
     occurs.

2. On 64-bit platforms (with size_t an unsigned 64-bit type):
     
   * For a byte variable, if the product of dimensions (not counting the
     record dimension, if any) is greater than 2**32, an assertion
     violation occurs:

       Assertion failed: *ulp <= X_SIZE_MAX, file ncx.c, line 1810

   * For a short variable, if the product of dimensions (not counting
     the record dimension, if any) is greater than 2**31, the same
     assertion violation occurs:

       Assertion failed: *ulp <= X_SIZE_MAX, file ncx.c, line 1810

The information in this email is also available on the web site "Known
Problems with the NetCDF Distributions" at

  http://www.unidata.ucar.edu/software/netcdf/docs/known_problems.html

--Russ
_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
russ@xxxxxxxxxxxxxxxx                     http://www.unidata.ucar.edu


 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Community Programs   Unidata is a member of the UCAR Community Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690