Bug(s) in nc.c

William Gropp gropp at mcs.anl.gov
Tue Dec 5 08:07:21 CST 2006


I was looking at the close operations and noticed code like this:

if (mpireturn != MPI_SUCCESS) {
         char errorString[512];
         int  errorStringLen;
         MPI_Error_string(mpireturn, errorString, &errorStringLen);
         printf("%2d: MPI_File_sync error = %s\n", rank, errorString);
         return NC_EWRITE;
   }

char errorString[512];

needs to be

char errorString[MPI_MAX_ERROR_STRING];

since an MPI implementation may require more than 512 bytes for the  
error message (MPICH2 currently uses this max, but that may be  
increased in the future).

This needs to be fixed for every error array passed into  
MPI_Error_string .

Bill




More information about the parallel-netcdf mailing list