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

Re: DODS, netCDF and Large File Support



>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 linux

Hi 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 uses
> netCDF 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 released
later 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 you
find. 

--Russ