Re: [netcdfgroup] a possible problem in libsrc/posixio.c

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

>Hi CÃdric,

>> there is a little problem in libsrc/posixio.c
>> (I think).
>>
>> In px_pgout, you do:
>> -----
>>         if(write(nciop->fd, vp, extent) != (ssize_t) extent)
>>         {
>>                 return errno;
>>         }
>> -----
>> Problem is 'write' may write less bytes than you request.
>> In which case errno will be ENOERR, so the caller of px_pgout
>> thinks everything went fine, 'extent' bytes were written
>> to the file.
>> On the next call to px_pgout, the following assert will fail.
>> -----
>>         assert(*posp == OFF_NONE || *posp == lseek(nciop->fd, 0,
>> SEEK_CUR));
>> -----
>> because the previous call didn't update posp. (Or other functions
>> where a similar assert is done will fail.)
>>
>> You should loop the write, something like
>> (adapt to match your taste):
>> -----
>>   count = 0;
>>   while ((n = write(XXX)) != -1) {
>>     count += n;
>>     if (count == extent) break;
>>   }
>>   if (n == -1) return errno;
>> -----

>Thanks for diagnosing the problem and suggesting a fix!  You are
>absolutely right about this, and we have already tested the fix, which
>will be in the upcoming 4.1 release.  This is an important bug fix that
>explains several previously reported assertion violations when writing
>to a disk that was nearly full.

>--Russ

Hi

we have a similiar problem for reading of netCDF files from NFS storage
by idl with the build of

** NCDF - IDL NetCDF support (not loaded)
    Version: 4.1.1, Build Date: JUN 18 2010, Source: ITT Visual
Information Solutions

The datafile can be readed on a local storage but not from NFS device.

idl: posixio.c:265: px_pgin: Assertion `*posp == ((off_t)(-1)) || *posp
== lseek(nciop->fd, 0, 1)' failed.
Aborted

Russ, is that fix incorporated into 4.1? And do you think it makes a
difference for reading? Need it be fixed there too?

If I look with stat at one of the example files it tells on the nfs storage .

stat mls_noonpos_060913.nc
  File: „mls_noonpos_060913.nc“
  Size: 6876612         Blocks: 13432      IO Block: 1048576 reguläre Datei
Device: 15h/21d Inode: 335102951   Links: 1


and on the local filesystem

stat mls_noonpos_060913.nc
  File: „mls_noonpos_060913.nc“
  Size: 6876612         Blocks: 13456      IO Block: 4096   reguläre Datei
Device: 801h/2049d      Inode: 110725044   Links: 1


I can provide the example if you want it (6.6MB)

cheers
Reimar

- --
   Reimar Bauer
   Forschungszentrum Jülich GmbH
   Institut für Energie- und Klimaforschung
   IEK-7: Stratosphäre
   D - 52425 Jülich

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2cK0wACgkQ5aOc3Q9hk/mHaQCZATcFzv1c48bakRSkTiwTuna2
UroAoMHXo2jlFZ+3sKIpPbkBh5SuDQFK
=et5m
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDirig Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Besuchen Sie uns auf unserem neuen Webauftritt unter www.fz-juelich.de



  • 2011 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: