[petsc-users] DMPlexCreateExodusFromFile() does not work on macOS Sierra

Matthew Knepley knepley at gmail.com
Sun Jan 22 13:35:11 CST 2017


On Sun, Jan 22, 2017 at 12:41 PM, Fande Kong <fdkong.jd at gmail.com> wrote:

> On Sat, Jan 21, 2017 at 10:47 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Sat, Jan 21, 2017 at 10:38 PM, Fande Kong <fdkong.jd at gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> I upgraded the OS system to macOS Sierra, and observed that PETSc can
>>> not read the exodus file any more. The same code runs fine on macOS
>>> Capitan. I also tested the function DMPlexCreateExodusFromFile() against
>>> different versions of the GCC compiler such as GCC-5.4 and GCC-6, and
>>> neither of them work. I guess this issue is related to the external package
>>> *exodus*, and PETSc might not pick up the right enveriment variables
>>> for the *exodus.*
>>>
>>> This issue can be reproduced using the following simple code:
>>>
>>
>> 1) This is just a standard check. Have you reconfigured so that you know
>> ExodusII was built with the same compilers and system libraries?
>>
>> 2) If so, can you get a stack trace with gdb or lldb?
>>
>
> 0   libsystem_kernel.dylib         0x00007fffad8b8dda __pthread_kill + 10
> 1   libsystem_pthread.dylib       0x00007fffad9a4787 pthread_kill + 90
> 2   libsystem_c.dylib             0x00007fffad81e420 abort + 129
> 3   libpetsc.3.7.dylib             0x00000001100eb9ee
> PetscAbortErrorHandler + 506 (errstop.c:40)
> 4   libpetsc.3.7.dylib             0x00000001100e631d PetscError + 916
> (err.c:379)
> 5   libpetsc.3.7.dylib             0x00000001100ed830
> PetscSignalHandlerDefault + 1927 (signal.c:160)
> 6   libpetsc.3.7.dylib             0x00000001100ed088
> PetscSignalHandler_Private(int) + 630 (signal.c:49)
> 7   libsystem_platform.dylib       0x00007fffad997bba _sigtramp + 26
> 8   ???                           0x000000011ea09370 initialPoolContent +
> 19008
> 9   libnetcdf.7.dylib             0x000000011228fc62 utf8proc_map + 210
> (dutf8proc.c:543)
> 10  libnetcdf.7.dylib             0x000000011228fd0f utf8proc_NFC + 38
> (dutf8proc.c:568)
> 11  libnetcdf.7.dylib             0x00000001122a7928 NC_findattr + 110
> (attr.c:341)
> 12  libnetcdf.7.dylib             0x00000001122a7a4e NC_lookupattr + 119
> (attr.c:384)
> 13  libnetcdf.7.dylib             0x00000001122a93ef NC3_get_att + 47
> (attr.c:1138)
> 14  libnetcdf.7.dylib             0x0000000112286126 nc_get_att_float +
> 90 (dattget.c:192)
> 15  libpetsc.3.7.dylib             0x00000001117f3a5b ex_open_int + 171
> (ex_open.c:259)
> 16  libpetsc.3.7.dylib             0x0000000110c36609
> DMPlexCreateExodusFromFile + 781 (plexexodusii.c:43)
> 17  DMPlexCreateExodusFromFile     0x000000010fed4cfc main + 397
> (DMPlexCreateExodusFromFile.cpp:24)
> 18  libdyld.dylib                 0x00007fffad78a255 start + 1
>

This is a NetCDF error on ex_open_int(). My guess is that your NetCDF build
is old and when it calls the system DLL
you bomb. Can you do a completely new build, meaning either reclone PETSc
somewhere else, or delete the whole
$PETSC_DIR/$PETSC_ARCH/externalpackage directory and reconfigure/build?

  Thanks,

      Matt


>
>

>>    Matt
>>
>>
>>> *static char help[] = " create mesh from exodus.\n\n";*
>>>
>>> *#include <petscdm.h>*
>>> *#include <petsc/private/dmpleximpl.h>*
>>>
>>> *#undef __FUNCT__*
>>> *#define __FUNCT__ "main"*
>>> *int main(int argc,char **argv)*
>>> *{*
>>> *  char                fineMeshFileName[2048];*
>>> *  DM                  dm;*
>>> *  MPI_Comm            comm;*
>>> *  PetscBool           flg;*
>>>
>>> *  PetscErrorCode      ierr;*
>>>
>>> *  ierr = PetscInitialize(&argc,&argv,(char *)0,help);CHKERRQ(ierr);*
>>> *  comm = PETSC_COMM_WORLD;*
>>> *  ierr =
>>> PetscOptionsGetString(NULL,NULL,"-file",fineMeshFileName,sizeof(fineMeshFileName),&flg);CHKERRQ(ierr);*
>>> *  if(!flg){*
>>> * SETERRQ(comm,PETSC_ERR_ARG_NULL,"please specify a fine mesh file \n");*
>>> *   }*
>>> *  ierr = DMPlexCreateExodusFromFile( comm,fineMeshFileName,
>>> PETSC_FALSE, &dm);CHKERRQ(ierr);*
>>> *  ierr = DMDestroy(&dm);CHKERRQ(ierr);*
>>> *  ierr = PetscFinalize();CHKERRQ(ierr);*
>>> *}*
>>>
>>>
>>> *LiviadeMacBook-Pro:partition livia$ ./DMPlexCreateExodusFromFile -file
>>> Tri3.exo *
>>> *[0]PETSC ERROR:
>>> ------------------------------------------------------------------------*
>>> *[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation,
>>> probably memory access out of range*
>>> *[0]PETSC ERROR: Try option -start_in_debugger or
>>> -on_error_attach_debugger*
>>> *[0]PETSC ERROR: or see
>>> http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind
>>> <http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind>*
>>> *[0]PETSC ERROR: or try http://valgrind.org <http://valgrind.org> on
>>> GNU/linux and Apple Mac OS X to find memory corruption errors*
>>> *[0]PETSC ERROR: likely location of problem given in stack below*
>>> *[0]PETSC ERROR: ---------------------  Stack Frames
>>> ------------------------------------*
>>> *[0]PETSC ERROR: Note: The EXACT line numbers in the stack are not
>>> available,*
>>> *[0]PETSC ERROR:       INSTEAD the line number of the start of the
>>> function*
>>> *[0]PETSC ERROR:       is given.*
>>> *[0]PETSC ERROR: [0] DMPlexCreateExodusFromFile line 38
>>> /Users/livia/math/petsc/src/dm/impls/plex/plexexodusii.c*
>>> *[0]PETSC ERROR: --------------------- Error Message
>>> --------------------------------------------------------------*
>>> *[0]PETSC ERROR: Signal received*
>>> *[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
>>> <http://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble shooting.*
>>> *[0]PETSC ERROR: Petsc Release Version 3.7.5, unknown *
>>> *[0]PETSC ERROR: ./DMPlexCreateExodusFromFile on a arch-darwin-cxx-debug
>>> named LiviadeMacBook-Pro.local by livia Sat Jan 21 21:04:22 2017*
>>> *[0]PETSC ERROR: Configure options --with-clanguage=cxx
>>> --with-shared-libraries=1 --download-fblaslapack=1 --with-mpi=1
>>> --download-parmetis=1 --download-metis=1 --download-netcdf=1
>>> --download-exodusii=1 --download-hdf5=1 --with-debugging=yes
>>> --with-c2html=0 --download-hypre=1 --with-64-bit-indices=1
>>> --download-superlu_dist=1 PETSC_ARCH=arch-darwin-cxx-debug*
>>> *[0]PETSC ERROR: #1 User provided function() line 0 in  unknown file*
>>> *application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0*
>>> *[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=59*
>>> *:*
>>> *system msg for write_line failure : Bad file descriptor*
>>>
>>>
>>> The log files of make and configuration are also attached.  If you have
>>> any idea on this issue, please let me know!
>>>
>>> Fande Kong,
>>>
>>>
>>
>>
>> --
>> 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
>>
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170122/c7ee0141/attachment-0001.html>


More information about the petsc-users mailing list