[petsc-users] Optimized run crashes on one machine but not another

Garnet Vaz garnet.vaz at gmail.com
Wed Aug 28 12:52:08 CDT 2013


Thanks Jed. I did as you told and the code finally crashes on both
builds. I installed the 3.4.2 release now.

The problem now seems to come from DMPlexDistribute(). I have two
versions to load the mesh. One creates a mesh using Triangle
from PETSc and the other loads a mesh using DMPlexCreateFromCellList().

Is the following piece of code for creating a mesh using Triangle right?

  ierr = DMPlexCreateBoxMesh(comm,2,interpolate,&user->dm);CHKERRQ(ierr);
  if (user->dm) {
    DM        refinedMesh     = NULL;
    DM        distributedMesh = NULL;
    ierr = DMPlexSetRefinementLimit(user->dm,refinementLimit);CHKERRQ(ierr);
    ierr = DMRefine(user->dm,PETSC_COMM_WORLD,&refinedMesh);CHKERRQ(ierr);
    if (refinedMesh) {
      ierr     = DMDestroy(&user->dm);CHKERRQ(ierr);
      user->dm = refinedMesh;
    }
    ierr   =
DMPlexDistribute(user->dm,"chaco",1,&distributedMesh);CHKERRQ(ierr);
    if (distributedMesh) {
      ierr = DMDestroy(&user->dm);CHKERRQ(ierr);
      user->dm  = distributedMesh;
    }
  }

Using gdb, the code gives a SEGV during distribution. The backtrace when
the fault
occurs points to an invalid pointer for ISGetIndices(). Attached is a
screenshot of the
gdb backtrace.
Do I need to set up some index set here?

The same error occurs when trying to distribute a mesh using
DMPlexCreateFromCellList().

Thanks for the help.


-
Garnet


On Wed, Aug 28, 2013 at 6:38 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> Garnet Vaz <garnet.vaz at gmail.com> writes:
>
> > Hi,
> >
> > I just rebuilt PETSc on both my laptop and my desktop.
> > On both machines the output of >grep GIT configure.log
> >         Defined "VERSION_GIT" to
> > ""d8f7425765acda418e23a679c25fd616d9da8153""
> >         Defined "VERSION_DATE_GIT" to ""2013-08-27 10:05:35 -0500""
>
> Thanks for the report.  Matt just merged a bunch of DMPlex-related
> branches (about 60 commits in total).  Can you 'git pull && make' to let
> us know if the problem is still there?  (It may not fix the issue, but
> at least we'll be debugging current code.)
>
> When dealing with debug vs. optimized issues, it's useful to configure
> --with-debugging=0 COPTFLAGS='-O2 -g'.  This allows valgrind to include
> line numbers, but it (usually!) does not affect whether the error
> occurs.
>
> > My code runs on both machines in the debug build without causing
> > any problems. When I try to run the optimized build, the code crashes
> > with a SEGV fault on my laptop but not on the desktop. I have built
> > PETSc using the same configure options.
> >
> > I have attached the outputs of valgrind for both my laptop/desktop for
> > both the debug/opt builds. How can I figure out what differences are
> > causing the errors in one case and not the other?
>
> It looks like an uninitialized variable.  Debug mode often ends up
> initializing local variables where as optimized leaves junk in them.
> Stack allocation alignment/padding is also often different.
> Unfortunately, valgrind is less powerful for debugging stack corruption,
> so the uninitialized warning is usually the best you get.
>



-- 
Regards,
Garnet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130828/3e0ab0d7/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screenshot from 2013-08-28 10:31:25.png
Type: image/png
Size: 88274 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130828/3e0ab0d7/attachment-0001.png>


More information about the petsc-users mailing list