On Sun, Jan 22, 2017 at 5:28 PM, Fande Kong <[email protected]> wrote:
> On Sun, Jan 22, 2017 at 12:35 PM, Matthew Knepley <[email protected]> > wrote: > >> On Sun, Jan 22, 2017 at 12:41 PM, Fande Kong <[email protected]> wrote: >> >>> On Sat, Jan 21, 2017 at 10:47 PM, Matthew Knepley <[email protected]> >>> wrote: >>> >>>> On Sat, Jan 21, 2017 at 10:38 PM, Fande Kong <[email protected]> >>>> 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 >> >> > > Hi Matt, > > Thanks for reply. I recloned PETSc (the old petsc folder is deleted > completely) and reconfigure. And still has the same issue. I also checked > if the binary is complied against any other netcdf. The binary is actually > complied against the right netcdf installed through PETSc. > You can see that this crash happens on the call to int CPU_word_size = 0, IO_word_size = 0, exoid = -1; float version; exoid = ex_open(filename, EX_READ, &CPU_word_size, &IO_word_size, &version); which means the fault is not in PETSc, but rather in ExodusII for your machine. We could definitely confirm this if you made a 5 line program that only called this, but I don't see why it should be different. I am not sure what to do, since I am not in control of anything about ExodusII. Can you report this to their dev team? It is strange since Blaise has not reported this, and I know he uses it all the time. Thanks, Matt > *LiviadeMacBook-Pro:partition livia$ otool -L DMPlexCreateExodusFromFile* > *DMPlexCreateExodusFromFile:* > * /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libpetsc.3.7.dylib > (compatibility version 3.7.0, current version 3.7.5)* > * > /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libsuperlu_dist.5.dylib > (compatibility version 5.0.0, current version 5.1.3)* > * /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libparmetis.dylib > (compatibility version 0.0.0, current version 0.0.0)* > * /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libmetis.dylib > (compatibility version 0.0.0, current version 0.0.0)* > * /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libnetcdf.7.dylib > (compatibility version 10.0.0, current version 10.0.0)* > * /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libhdf5_hl.8.dylib > (compatibility version 9.0.0, current version 9.1.0)* > * /Users/livia/math/petsc/arch-darwin-cxx-debug/lib/libhdf5.8.dylib > (compatibility version 9.0.0, current version 9.1.0)* > * /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current > version 10.0.0)* > * /Users/livia/math/mpich-3.2_install/lib/libmpifort.12.dylib > (compatibility version 14.0.0, current version 14.0.0)* > * /usr/local/opt/gcc@5/lib/gcc/5/libgfortran.3.dylib (compatibility > version 4.0.0, current version 4.0.0)* > * /usr/local/opt/gcc@5/lib/gcc/5/libquadmath.0.dylib (compatibility > version 1.0.0, current version 1.0.0)* > * /Users/livia/math/mpich-3.2_install/lib/libmpicxx.12.dylib > (compatibility version 14.0.0, current version 14.0.0)* > * /usr/local/opt/gcc@5/lib/gcc/5/libstdc++.6.dylib (compatibility version > 7.0.0, current version 7.21.0)* > * /usr/local/opt/gcc@5/lib/gcc/5/libgcc_s.1.dylib (compatibility version > 1.0.0, current version 1.0.0)* > * /Users/livia/math/mpich-3.2_install/lib/libmpi.12.dylib (compatibility > version 14.0.0, current version 14.0.0)* > * /Users/livia/math/mpich-3.2_install/lib/libpmpi.12.dylib (compatibility > version 14.0.0, current version 14.0.0)* > * /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version > 1238.0.0)* > * /usr/local/lib/gcc/5/libgcc_s.1.dylib (compatibility version 1.0.0, > current version 1.0.0)* > > > > > >> >>> >> >>>> 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 >> > > -- 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
