Re: [netcdfgroup] valgrind errors for very simple Netcdf4-program

  • To: Natalie Mueller <mueller@xxxxxxxxxxxx>
  • Subject: Re: [netcdfgroup] valgrind errors for very simple Netcdf4-program
  • From: Ed Hartnett <ed@xxxxxxxxxxxxxxxx>
  • Date: Tue, 19 Aug 2008 06:01:39 -0600
Natalie Mueller <mueller@xxxxxxxxxxxx> writes:

> Hi all,
>
> I boiled my problems down to a very, very simple netcdf-program:
>
> #include <stdio.h>
> #include <netcdf.h>
> int main(void)
> {
>         int val = 13;
>         int ncid, dimid, varid;
>
>         printf("%s\n",nc_inq_libvers());
>
>         nc_create("nc4_test.nc", NC_NETCDF4, &ncid);
>
>         nc_def_dim(ncid,"val",  1,&dimid);
>         nc_def_var(ncid,"val",  NC_INT, 1,&dimid,&varid);
>         nc_enddef(ncid);
>         
>         nc_put_var_int (ncid,varid,&val);
>
>         nc_close(ncid);
>         return 0;
> }
>
> compiles fine with:
>  gcc -o nc4_test nc4_test.c -lnetcdf -lhdf5_hl -lhdf5
>
> ./nc4_test says:
>  4.0 of Aug  1 2008 16:01:13 $
>
> ncdump nc4_test.nc gives the output as expected:
>
> netcdf nc4_test {
> dimensions:
>         val = 1 ;
> variables:
>         int val(val) ;
> data:
>
>  val = 13 ;
> }
>
> Now the problem is valgrind ./nc4_test: 
>
> ==22817== Memcheck, a memory error detector.
> ==22817== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
> ==22817== Using LibVEX rev 1575, a library for dynamic binary translation.
> ==22817== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
> ==22817== Using valgrind-3.1.1, a dynamic binary instrumentation framework.
> ==22817== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
> ==22817== For more details, rerun with: -v
> ==22817== 
> 4.0 of Aug  1 2008 16:01:13 $
> ==22817== Conditional jump or move depends on uninitialised value(s)
> ==22817==    at 0x4DA73DA: H5P_set (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D94E13: H5Pset_fill_value 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x40FDCF: nc4_rec_write_metadata (nc4hdf.c:1012)
> ==22817==    by 0x408EA8: sync_netcdf4_file (nc4file.c:655)
> ==22817==    by 0x403B69: main (in /data/home/oa027/src/nlc/nc4_test)
> ==22817== 
> ==22817== Conditional jump or move depends on uninitialised value(s)
> ==22817==    at 0x4DA73DA: H5P_set (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D91258: H5P_dcrt_copy 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4DAA75C: H5P_copy_plist 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4CC9456: H5D_new (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4CC9782: H5D_create (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4CD65B0: H5O_dset_create 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D62327: H5O_obj_create 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D5DE8F: H5L_link_cb (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D31C53: H5G_traverse_real 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D3245B: H5G_traverse (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D58199: H5L_create_real 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817==    by 0x4D5826B: H5L_link_object 
> (in /usr/local/lib64/libhdf5.so.5.0.1)
> ==22817== 
> ==22817== ERROR SUMMARY: 32 errors from 2 contexts (suppressed: 3 from 1)
> ==22817== malloc/free: in use at exit: 0 bytes in 0 blocks.
> ==22817== malloc/free: 2,067 allocs, 2,067 frees, 786,394 bytes allocated.
> ==22817== For counts of detected errors, rerun with: -v
> ==22817== All heap blocks were freed -- no leaks are possible.
>
> Did I do something wrong or is this a serious problem, and how can I solve 
> it? 
> Although it seems to work, I don't want to proceed with valgrind errors.
>
> Thanks a lot
> Natalie

Howdy Natalie!

These are known issues with HDF5 1.8.1. Proceed with your program,
it's fine.

Thanks,

Ed

--
Ed Hartnett  -- ed@xxxxxxxxxxxxxxxx


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