[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sync problem?



>To: address@hidden
>From: Tom LeFebvre <address@hidden>
>Subject: Re: 20001106:  sync problem?
>Organization: NOAA/FSL
>Keywords: ncsync bug

Tom,

> I've bumped into a problem and I'm wondering if it's documented or a
> patch is out.  I didn't see it on the known problems netCDF page.
> 
> I'm changing the value of a variable attribute.  Shortly after I call
> add_att, I can read the newly corrected value.  However, if I stop my
> program gracefully calling all destructors, I see the old value on the
> disk file.  Calling NcFIle->sync() seems to fix the problem.  Is there a
> known problem with respect to flushing modified data to the disk?

Yes, there was a problem in netCDF 3.4, which is still the latest
general release, that we fixed in netCDF 3.5, which is still only
available as a beta release (beta6 from Oct 19 is the latest).  We're
getting close to a final release of netCDF 3.5; all the changes lately
have just been related to porting to additional platforms such as
MacOS X.  So if you want to try netCDF 3.5 beta6, we'd be interested
if it fixes the problem.  I've appended the RELEASE_NOTES for 3.5,
which gives a slightly more detailed description of the fix.

The beta release is available from 

  ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-beta.tar.Z

--Russ

This file contains a high-level description of this package's evolution.
Entries are in reverse chronological order (most recent first).


VERSION         COMMENTS
-------         --------
3.5     YYYY-MM-DD

                Added Fortran 90 interface.

                Changed C macro TIMELEN in file cxx/nctst.cpp to
                TIMESTRINGLEN to avoid clash with macro defined on AIX
                systems in /usr/include/time.h.

                Fixed miswriting of netCDF header when exiting define
                mode.  Because the header was always written correctly
                later, this was only a problem if there was another
                reader of the netCDF file.

                Fixed explicit synchronizing between netCDF writer and
                readers via the nc_sync(), nf_sync(), and ncsync()
                functions.

                Fixed a number of bugs related to attempts to support
                shrinking the header in netCDF files when attributes
                are rewritten or deleted.  Also fixed the problem that
                nc__endef() did not work as intended in reserving
                extra space in the file header, since the extra space
                would be compacted again on calling nc_close().

                Fixed the "redef bug" that occurred when nc_enddef()
                or nf_enddef() is called after nc_redef() or
                nf_redef(), the file is growing such that the new
                beginning of a record variable is in the next "chunk",
                and the size of at least one record variable exceeds
                the chunk size (see netcdf.3 man page for a
                description of this tuning parameter and how to set
                it).  This bug resulted in corruption of some values
                in other variables than the one being added.

                The "__" tuning functions for the Fortran interface,
                nf__create, nf__open, and nf__enddef, are now
                documented in the Fortran interface man pages.

                Permit additional characters in netCDF names in CDL:
                any of ".", "@", "#", "[", and "]" are now permitted in
                names, in addition to alphanumeric characters, "_", and
                "-".

                Add an 'uninstall' target to all the Makefiles.
                Dave Glowacki <address@hidden> 199810011851.MAA27335

                Added support for multiprocessing on Cray T3E.
                Hooks added by Glenn, but the majority of the work
                was done at NERSC. Also includes changes to ffio
                option specification. Patch rollup provided by
                R. K. Owen <address@hidden>. The following functions
                are added to the public interface.
                        nc__create_mp()
                        nc__open_mp()
                        nc_set_base_pe()
                        nc_inq_base_pe()

                Fixed makefile URL for Win32 systems in INSTALL file.

                Made test for UNICOS system in the configure script case
                independent.

                Ported to the following systems:
                    AIX 4.3 (both /bin/xlc and /usr/vac/bin/xlc compilers)
                    IRIX 6.5
                    IRIX64 6.5

                Changed the extension of C++ files from ".cc" to ".cpp".
                Renamed the C++ interface header file "netcdfcpp.h"
                instead of "netcdf.hh", changing "netcdf.hh" to
                include "netcdfcpp.h" for backward compatibility.

                Treat "FreeBSD" systems the same as "BSD/OS" system
                w.r.t. Fortran and "whatis" database.

                Corrected manual pages: corrected spelling of "enddef" (was
                "endef") and ensured that the words "index" and "format"
                will be correctly printed.

                Updated support for Fortran-calling-C interface by
                updating "fortran/cfortran.h" from version 3.9 to
                version 4.1.  This new version supports the Portland
                Group Fortran compiler (C macro "pgiFortran")
                and the Absoft Pro Fortran compiler (C macro
                "AbsoftProFortran").

                Corrected use of non-integral-constant-expression
                in specifying size of temporary arrays in file
                "libsrc/ncx_cray.c".

                Added Compaq Alpha Linux workstation example to INSTALL
                file.

                Ported cfortran.h to Cygnus GNU Win32 C compiler (gcc
                for Windows).

                Fixed bug in ncdump using same CDL header name when
                called with multiple files.
                
                Added new NULL data type  NC_NAT (Not A Type) to
                facilitate checking whether a variable object has had
                its type defined yet, for example when working with
                packed values.

                Fixed use of compile-time macro NO_NETCDF_2 so it
                really doesn't include old netCDF-2 interfaces, as
                intended.

                Ported to MacOS X Public Beta (Darwin 1.2/PowerPC).

                Modified NCGEN and NCDUMP macros: added setting of PATH 
                environment variable to command such that the just-built
                utility is used if available.