<div dir="ltr">Instead of reporting a leak, the below code, when run with -log_view, triggers an error<div><br></div><div><div>#include <petscviewer.h></div><div><br></div><div>int main(int argc,char **args)</div><div>{</div><div> PetscErrorCode ierr;</div><div> PetscViewer view;</div><div><br></div><div> ierr = PetscInitialize(&argc,&args,(char*)0,help);CHKERRQ(ierr);</div><div> ierr = PetscViewerASCIIGetStdout(PETSC_COMM_WORLD,&view);CHKERRQ(ierr);</div><div> ierr = PetscViewerCreate(PETSC_COMM_WORLD,&view);CHKERRQ(ierr);</div><div> ierr = PetscFinalize();</div><div> return ierr;</div><div>}</div><div><br></div><div><div>0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------</div><div>[0]PETSC ERROR: Corrupt argument: <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a></div><div>[0]PETSC ERROR: Invalid type of object: Parameter # 1</div><div>[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html">http://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.</div><div>[0]PETSC ERROR: Petsc Development GIT revision: v3.7.6-4792-gbbfd41f GIT Date: 2017-07-30 13:35:30 +0300</div><div>[0]PETSC ERROR: ./ex1 on a arch-debug named localhost.localdomain by szampini Thu Oct 12 15:24:19 2017</div><div>[0]PETSC ERROR: Configure options --download-chaco --download-ctetgen --download-hypre --download-metis --download-mumps --download-p4est --download-parmetis --download-suitesparse --download-triangle --with-scalapack CFLAGS="-Wall -g -O0" CXXFLAGS="-Wall -g -O0" FCFLAGS="-g -O0" PETSC_ARCH=arch-debug</div><div>[0]PETSC ERROR: #1 PetscObjectReference() line 510 in /home/szampini/src/petsc/src/sys/objects/inherit.c</div><div>[0]PETSC ERROR: #2 PetscOptionsGetViewer() line 259 in /home/szampini/src/petsc/src/sys/classes/viewer/interface/viewreg.c</div><div>[0]PETSC ERROR: #3 PetscLogViewFromOptions() line 1753 in /home/szampini/src/petsc/src/sys/logging/plog.c</div><div>[0]PETSC ERROR: #4 PetscFinalize() line 1227 in /home/szampini/src/petsc/src/sys/objects/pinit.c</div></div><div><br></div><div>The problem is with the MPIAttribute Petsc_Viewer_Stdout_keyval attached to PETSC_COMM_WORLD. PETSC_VIEWER_STDOUT_WORLD gets destroyed in the first call to PetscObjectRegisterDestroyAll(); Then PetscLogViewFromOptions() call PetscViewerASCIIGetStdout that checks for the presence of the attribute on the communicator, which is still there, since we never called MPI_Comm_free on that communicator.</div><div><br></div><div>What would be a solution for this issue? At least, we should print a nice error message in PetscViewerASCIIGetStdout. </div><div><br></div><div><br></div>-- <br><div class="gmail_signature">Stefano</div>
</div></div>