[petsc-dev] valgrind appears to show memory leak related to PetscViewerBinaryOpen

Barry Smith bsmith at mcs.anl.gov
Wed Jun 1 11:20:07 CDT 2011


   Brad,

    The problems valgrind reports are all due to errors in opempi. If you use --download-mpich that installs a "clean" version of MPICH that has no memory errors.

   The [0] means process 0. 

   The "memory leak reported by -malloc_dump is due to bad example code 

err = PetscViewerBinaryCreate(PETSC_COMM_WORLD, &viewer);CHKERRQ(err);

  err = PetscViewerBinaryOpen(PETSC_COMM_WORLD, "myviewer.dat", FILE_MODE_WRITE, &viewer); CHKERRQ(err);

    There is no reason for the line PetscViewerBinaryCreate(). It creates an (unfilled) binary viewer but then PetscViewerBinaryOpen() lies on top of it a filled one, thus leaking the previous memory.

   There is no reason for the existence of PetscViewerBinaryCreate(), I am removing it from PETSc-dev.



    Barry



  On Jun 1, 2011, at 11:05 AM, Brad Aagaard wrote:

> Hi all:
> 
> Valgrind is suggesting that I may have a memory leak associated with PetscViewer objects in PyLith. I created a simple example (attached) that reproduces the valgrind message.
> 
> Is there really a memory leak associated with PetscMallocAlign() or is valgrind just confused?
> 
> I also ran the example with the -malloc -malloc_debug -malloc_dump flags. What do the values in square brackets mean? Does [0] indicate memory was freed or not freed? The FAQ on use of -malloc doesn't appear to discuss what the output means.
> 
> Logs from running the example in valgrind and with the malloc flags are also attached.
> 
> Thanks,
> Brad
> <log_malloc.txt><log_valgrind.txt><test_viewer.cc>




More information about the petsc-dev mailing list