This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Russ Rew wrote:
To: address@hidden, address@hidden, address@hidden, address@hidden, address@hidden From: Rick Grubin <address@hidden> Subject: Re: 20040707: DODS, netCDF and Large File Support Organization: NCAR SCD Keywords:200407071325.i67DPXaW025904 dods lfs linuxHi Rick,[All of the following refers to Linux hosts, particularly RH9 and FC1] I have a client application (NCL http://ngwww.ucar.edu/ncl) which usesnetCDF as its base file structure.Earlier this year, I was able to successfully integrate DODS client libraries into NCL, giving users access to remote files. Recently, users have been asking for large file support ("lfs", >2Gb) within NCL. I've also been able to integrate this support.In each of the two cases noted above, the feature in question (DODS and lfs) was integrated independent of the other, and each worked/works well.When trying to build both into my client application at the same time, I note that DODS continues to work as expected, but access to large files fails. My netCDF libraries (v3.5.1) are built with lfs, as are my DODS libraries (v3.4.3). By "built" I mean I compile with: -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE in order to 'turn on' lfs on a 32-bit host. When I try to access a large file, I see the following message: lnetcdf/lposixio.c:269: px_get: Assertion `offset >= 0' failed. I suspect that this is a file size error, and for some reason a file size is a negative number. I expect I'll build the netCDF libs with debugging and trace this through. My questions: 1. Are DODS and lfs mutually exclusive? 1a. Is lfs supported with DODS file access? 2. If 'no' to #1/#1a, what (obvious?) item am I overlooking?I think DODS and LFS should work together. Charlie Zender's NCO package http://nco.sourceforge.net/ claims to support both LFS and NCO, though the LFS support has just been added recently. The LFS support in netCDF 3.5.1 is somewhat limited (only one non-record variable over 2 GB allowed, etc.). We are adding better LFS support to netCDF 3.6.0, which will be releasedlater this month.None of this explains the bug you are seeing, which I haven't seen before. The assertion in lposixio.c/px_get is from DODS code rather than the netCDF library, since netCDF has know "lposixio.c" file. If you discover more by tracing this, please let us know what youfind.--Russ
Hi all, I'm CCing James Gallagher on this to get another OPeNDAP/DODS perspective.The netcdf file libsrc/posixio.c is used as the OPeNDAP file nc3-dods/lnetcdf/posixio.c with very few changes. The assertion that fails above is the same in both versions of the file and none of the other changes jump out at me as being likely to affect this assertion. However, I haven't looked at any differences in other files between the netCDF code and the code as it is in OPeNDAP.
James, any thoughts on OPeNDAP and LFS? Ethan -- Ethan R. Davis Telephone: (303) 497-8155 Software Engineer Fax: (303) 497-8690 UCAR Unidata Program Center E-mail: address@hidden P.O. Box 3000 Boulder, CO 80307-3000 http://www.unidata.ucar.edu/ ---------------------------------------------------------------------------