Pushed a fix. I missed the Viewer when I corrected the raw call. That should not be separate code.
Matt On Mon, Jul 21, 2008 at 2:54 PM, Satish Balay <balay at mcs.anl.gov> wrote: > Matt - Perhaps ex7 is a different Problem. But it does crash for me. > And I noticed the following code: > >>>>>>>>>>>> > ierr = PetscNew(struct _PrintfQueue,&next);CHKERRQ(ierr); > if (queue) {queue->next = next; queue = next;} > else {queuebase = queue = next;} > queuelength++; > string = next->string; > ierr = PetscMemzero(string,QUEUESTRINGSIZE);CHKERRQ(ierr); > <<<<<<<<< > > i.e 'next' is allocated - here is no malloc for 'next->string'. But > its being zeroed in PetscMemzero() - hence the crash with ex7 for me. > > Satish > > --------------------------------------------- > > asterix:/home/balay/spetsc/src/dm/ao/examples/tests>mpiexec -n 2 ./ex7 > Number of elements in ordering 10 > PETSc->App App->PETSc > 0 0 0 0 > 1 5 1 2 > 2 1 2 4 > 3 6 3 6 > 4 2 4 8 > 5 7 5 1 > 6 3 6 3 > 7 8 7 5 > 8 4 8 7 > 9 9 9 9 > [1]PETSC ERROR: --------------------- Error Message > ------------------------------------ > [1]PETSC ERROR: Null argument, when expecting valid pointer! > [1]PETSC ERROR: Trying to zero at a null pointer! > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: Petsc Development Version 2.3.3, Patch 13, unknown HG > revision: unknown > [1]PETSC ERROR: See docs/changes/index.html for recent updates. > [1]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > [1]PETSC ERROR: See docs/index.html for manual pages. > [1]PETSC ERROR: > ------------------------------------------------------------------------ > [1]PETSC ERROR: ./ex7 on a asterix64 named asterix by balay Mon Jul 21 > 14:51:02 2008 > [1]PETSC ERROR: Libraries linked from /home/balay/spetsc/lib > [1]PETSC ERROR: Configure run at Mon Jul 21 10:38:52 2008 > [1]PETSC ERROR: Configure options > --with-mpi-dir=/home/balay/soft/linux64/mpich2-1.0.7 --with-shared=1 > PETSC_ARCH=asterix64 > [1]PETSC ERROR: ----------------------------[0] Number of indices in (stride) > set 5 > [0] 0 0 > [0] 1 2 > [0] 2 4 > [0] 3 6 > [0] 4 8 > -------------------------------------------- > [1]PETSC ERROR: PetscMemzero() line 189 in src/sys/utils/memc.c > [1]PETSC ERROR: PetscViewerASCIISynchronizedPrintf() line 859 in > src/sys/viewer/impls/ascii/filev.c > [1]PETSC ERROR: ISView_Stride() line 231 in src/vec/is/impls/stride/stride.c > [1]PETSC ERROR: ISView() line 398 in src/vec/is/interface/index.c > [1]PETSC ERROR: main() line 31 in src/dm/ao/examples/tests/ex7.c > application called MPI_Abort(MPI_COMM_WORLD, 85) - process 1[cli_1]: aborting > job: > application called MPI_Abort(MPI_COMM_WORLD, 85) - process 1 > [0]0:Return code = 0, signaled with Interrupt > [0]1:Return code = 85 > asterix:/home/balay/spetsc/src/dm/ao/examples/tests> > > > > > On Mon, 21 Jul 2008, Matthew Knepley wrote: > >> I made this change because synchronized printing was cutting off my >> stuff. Now the queue is dynamically allocated so it can accomodate >> any size string. >> >> I tried ex7 and it runs fine for me, even under valgrind. >> >> Shi, can you reproduce this with a Sieve example? >> >> Matt >> >> On Mon, Jul 21, 2008 at 2:37 PM, Satish Balay <balay at mcs.anl.gov> wrote: >> > Looks like this could be related to changeset 9e3fbe04a926 >> > >> > --> mprint.h <-- >> > >> > - char string[QUEUESTRINGSIZE]; >> > + char *string; >> > >> > So now strings needs to use malloc()/free()? >> > >> > Matt - you can reproduce this issue with dm/ao/examples/tests/ex7.c >> > >> > Satish > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener