0ax1/MPI-Checker

Crash during Scan Build

Closed this issue · 11 comments

When running scan build with -enable-checker lx.MPIChecker (but not without), I get:

scan-build: 0 bugs found.
scan-build: The analyzer encountered problems on some source files.
scan-build: Preprocessed versions of these sources were deposited in '/tmp/scan-build-2015-06-02-115357-29481-1/failures'.
scan-build: Please consider submitting a bug report using these files:
scan-build: http://clang-analyzer.llvm.org/filing_bugs.html

The info on the build of one such file is:

/home/patrick/acronym/src/grpic/generic/remap_3d.cpp
Crash
-cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -disable-llvm-verifier -main-file-name remap_3d.cpp -mrelocation-model static -mthread-model posix -menable-no-infs -menable-no-nans -menable-unsafe-fp-math -ffp-contract=fast -ffast-math -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu corei7 -momit-leaf-frame-pointer -dwarf-column-info -resource-dir /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2 -D PART_REAL=double -D sorting -D pml_boundaries -D EB_SOLVER=EB_YEE -D PP_VERSION=PP_BORIS -D FFT_FFTW3 -D SPECTRAL_SOLVER -D FF_ORDER=FF_TSC -D CA_METHOD=CA_ESIRKEPOV -D CONF_WITH_ENERGYOUT_IO -D CONF_WITH_FIELD_IO -D CONF_WITH_FIELD_H5_IO -D CONF_WITH_PARTICLES_IO -D CONF_WITH_H5 -D VERBOSE_SIMULATION -I /home/patrick/acronym//include -I /home/patrick/acronym//src/physconst -I /usr/lib64/mpi/gcc/openmpi/include/ -I /opt/phdf5/include -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/x86_64-suse-linux -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/local/include -internal-isystem /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Ofast -fdeprecated-macro -fdebug-compilation-dir /home/patrick/acronym/src/grpic/generic -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -x c++ remap_3d.cpp
Linux kilian-tld4 4.0.4-1-desktop #1 SMP PREEMPT Tue May 19 15:29:48 UTC 2015 (4f5e0d5) x86_64 x86_64 x86_64 GNU/Linux
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.8/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.8 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --enable-linker-build-id --enable-linux-futex --program-suffix=-4.8 --without-system-libunwind --with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux
Thread model: posix
gcc version 4.8.3 20141208 [gcc-4_8-branch revision 218481](SUSE Linux)

the crash stderr is:
#0 0x14bc682 llvm::sys::PrintStackTrace(_IO_FILE*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x14bc682)
#1 0x14ba899 SignalHandler(int) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x14ba899)
#2 0x7f1ff7b193e0 restore_rt (/lib64/libpthread.so.0+0x103e0)
#3 0x222fd5e clang::RecursiveASTVisitormpi::RankVisitor::TraverseCallExpr(clang::CallExpr*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x222fd5e)
#4 0x2231470 clang::RecursiveASTVisitormpi::RankVisitor::dataTraverse(clang::Stmt*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2231470)
#5 0x2232238 clang::RecursiveASTVisitormpi::RankVisitor::TraverseCompoundStmt(clang::CompoundStmt*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2232238)
#6 0x22368e8 clang::RecursiveASTVisitormpi::RankVisitor::TraverseWhileStmt(clang::WhileStmt*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22368e8)
#7 0x2232238 clang::RecursiveASTVisitormpi::RankVisitor::TraverseCompoundStmt(clang::CompoundStmt*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2232238)
#8 0x223e0d8 clang::RecursiveASTVisitormpi::RankVisitor::TraverseFunctionHelper(clang::FunctionDecl*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x223e0d8)
#9 0x2237133 clang::RecursiveASTVisitormpi::RankVisitor::TraverseDecl(clang::Decl*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2237133)
#10 0x22377b7 clang::RecursiveASTVisitormpi::RankVisitor::TraverseDeclContextHelper(clang::DeclContext*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22377b7)
#11 0x2236f01 clang::RecursiveASTVisitormpi::RankVisitor::TraverseDecl(clang::Decl*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2236f01)
#12 0x22377b7 clang::RecursiveASTVisitormpi::RankVisitor::TraverseDeclContextHelper(clang::DeclContext*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22377b7)
#13 0x2237b29 mpi::MPIChecker::checkASTDecl(clang::TranslationUnitDecl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2237b29)
#14 0x22fd4b0 clang::ento::CheckerManager::runCheckersOnASTDecl(clang::Decl const*, clang::ento::AnalysisManager&, clang::ento::BugReporter&) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22fd4b0)
#15 0x1c17d74 (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) [clone .part.2906] clone .constprop.2908
#16 0x1c1ef3a clang::ParseAST(clang::Sema&, bool, bool) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1c1ef3a)
#17 0x1637036 clang::FrontendAction::Execute() (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1637036)
#18 0x1611739 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1611739)
#19 0x16a9ccb clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x16a9ccb)
#20 0x81d7a8 cc1_main(llvm::ArrayRef<char const*>, char const
, void
) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x81d7a8)
#21 0x7ff3cf main (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x7ff3cf)
#22 0x7f1ff6cd88c5 __libc_start_main (/lib64/libc.so.6+0x208c5)
#23 0x81bf99 _start /home/abuild/rpmbuild/BUILD/glibc-2.21/csu/../sysdeps/x86_64/start.S:121:0

Stack dump:
0. Program arguments: /tmp/mpichecker/llvm36/build/release/bin/clang++ -cc1 -triple x86_64-unknown-linux-gnu -analyze -disable-free -disable-llvm-verifier -main-file-name remap_3d.cpp -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-eagerly-assume -analyzer-checker=core -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-output plist -w -mrelocation-model static -mthread-model posix -menable-no-infs -menable-no-nans -menable-unsafe-fp-math -ffp-contract=fast -ffast-math -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu corei7 -momit-leaf-frame-pointer -dwarf-column-info -resource-dir /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2 -D PART_REAL=double -D sorting -D pml_boundaries -D EB_SOLVER=EB_YEE -D PP_VERSION=PP_BORIS -D FFT_FFTW3 -D SPECTRAL_SOLVER -D FF_ORDER=FF_TSC -D CA_METHOD=CA_ESIRKEPOV -D CONF_WITH_ENERGYOUT_IO -D CONF_WITH_FIELD_IO -D CONF_WITH_FIELD_H5_IO -D CONF_WITH_PARTICLES_IO -D CONF_WITH_H5 -D VERBOSE_SIMULATION -I /home/patrick/acronym//include -I /home/patrick/acronym//src/physconst -I /usr/lib64/mpi/gcc/openmpi/include/ -I /opt/phdf5/include -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/x86_64-suse-linux -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/local/include -internal-isystem /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Ofast -fdeprecated-macro -fdebug-compilation-dir /home/patrick/acronym/src/grpic/generic -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -analyzer-checker lx.MPIChecker -analyzer-output=html -o /tmp/scan-build-2015-06-02-115357-29481-1 -x c++ remap_3d.cpp

  1.  <eof> parser at end of file
    

I can provide the raw and preprocessed file (unfortunately github doesn't allow me to attach files to this ticket) are available on request.

0ax1 commented

Can you try one of the examples from the examples folder?
Do they build without errors?

0ax1 commented

If you try the makefile the correct command for the example is:

scan-build --use-analyzer which clang -enable-checker lx.MPIChecker -V
make debug ANALYZE=1

0ax1 commented

I changed the code based on your error message and pushed it to the repo.

I have not tried any of the examples yet. Your update however fixed a lot of crashes. now a single file in the project produces a crash. The output for that file is:

/tmp/mpichecker/llvm36/repo/tools/clang/tools/scan-build/c++-analyzer -Ofast -march=native -DPART_REAL=double -I /home/patrick/acronym//include -I /home/patrick/acronym//src/physconst -I /usr/lib64/mpi/gcc/openmpi/include/ -Dsorting -Dpml_boundaries -DEB_SOLVER=EB_YEE -DPP_VERSION=PP_BORIS -DFFT_FFTW3 -DSPECTRAL_SOLVER -DFF_ORDER=FF_TSC -DCA_METHOD=CA_ESIRKEPOV -DCONF_WITH_ENERGYOUT_IO -DCONF_WITH_FIELD_IO -DCONF_WITH_FIELD_H5_IO -DCONF_WITH_PARTICLES_IO -DCONF_WITH_H5 -DVERBOSE_SIMULATION -I/opt/phdf5/include move_borders.cpp -c -o build-Linux-amd64-corei7/move_borders.o
#0 0x14bc6d2 llvm::sys::PrintStackTrace(IO_FILE) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x14bc6d2)
#1 0x14ba8e9 SignalHandler(int) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x14ba8e9)
#2 0x7f154d4c23e0 restore_rt (/lib64/libpthread.so.0+0x103e0)
#3 0x22b04ca mpi::MPICheckerAST::isSendRecvPair(mpi::MPICall const&, mpi::MPICall const&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22b04ca)
#4 0x22b0873 mpi::MPICheckerAST::checkSendRecvMatches(mpi::MPIRankCase const&, mpi::MPIRankCase const&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22b0873)
#5 0x22b096a mpi::MPICheckerAST::checkPointToPointSchema() const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22b096a)
#6 0x2231899 mpi::MPIChecker::checkASTDecl(clang::TranslationUnitDecl const
, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2231899)
#7 0x22fd550 clang::ento::CheckerManager::runCheckersOnASTDecl(clang::Decl const
, clang::ento::AnalysisManager&, clang::ento::BugReporter&) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22fd550)
#8 0x1c17dc4 (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) [clone .part.2906] clone .constprop.2908
#9 0x1c1ef8a clang::ParseAST(clang::Sema&, bool, bool) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1c1ef8a)
#10 0x1637086 clang::FrontendAction::Execute() (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1637086)
#11 0x1611789 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1611789)
#12 0x16a9d1b clang::ExecuteCompilerInvocation(clang::CompilerInstance_) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x16a9d1b)
#13 0x81d7f8 cc1_main(llvm::ArrayRef<char const*>, char const_, void_) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x81d7f8)
#14 0x7ff41f main (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x7ff41f)
#15 0x7f154c6818c5 __libc_start_main (/lib64/libc.so.6+0x208c5)
#16 0x81bfe9 _start /home/abuild/rpmbuild/BUILD/glibc-2.21/csu/../sysdeps/x86_64/start.S:121:0
Stack dump:
0. Program arguments: /tmp/mpichecker/llvm36/build/release/bin/clang++ -cc1 -triple x86_64-unknown-linux-gnu -analyze -disable-free -disable-llvm-verifier -main-file-name move_borders.cpp -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-eagerly-assume -analyzer-checker=core -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-output plist -w -mrelocation-model static -mthread-model posix -menable-no-infs -menable-no-nans -menable-unsafe-fp-math -ffp-contract=fast -ffast-math -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu corei7 -momit-leaf-frame-pointer -dwarf-column-info -resource-dir /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2 -D PART_REAL=double -D sorting -D pml_boundaries -D EB_SOLVER=EB_YEE -D PP_VERSION=PP_BORIS -D FFT_FFTW3 -D SPECTRAL_SOLVER -D FF_ORDER=FF_TSC -D CA_METHOD=CA_ESIRKEPOV -D CONF_WITH_ENERGYOUT_IO -D CONF_WITH_FIELD_IO -D CONF_WITH_FIELD_H5_IO -D CONF_WITH_PARTICLES_IO -D CONF_WITH_H5 -D VERBOSE_SIMULATION -I /home/patrick/acronym//include -I /home/patrick/acronym//src/physconst -I /usr/lib64/mpi/gcc/openmpi/include/ -I /opt/phdf5/include -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/x86_64-suse-linux -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/local/include -internal-isystem /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Ofast -fdeprecated-macro -fdebug-compilation-dir /home/patrick/acronym/src/grpic/generic -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -analyzer-checker lx.MPIChecker -analyzer-output=html -o /tmp/scan-build-2015-06-02-134905-351-1 -x c++ move_borders.cpp

  1.  <eof> parser at end of file
    
0ax1 commented

Can you tell me which mpi-functions are called in the crashing file?

On 02.06.15 13:57, petschge wrote:

I have not tried any of the examples yet. Your update however fixed a lot of crashes. now a single file in the project produces a crash. The output for that file is:

/tmp/mpichecker/llvm36/repo/tools/clang/tools/scan-build/c++-analyzer -Ofast -march=native -DPART_REAL=double -I /home/patrick/acronym//include -I /home/patrick/acronym//src/physconst -I /usr/lib64/mpi/gcc/openmpi/include/ -Dsorting -Dpml_boundaries -DEB_SOLVER=EB_YEE -DPP_VERSION=PP_BORIS -DFFT_FFTW3 -DSPECTRAL_SOLVER -DFF_ORDER=FF_TSC -DCA_METHOD=CA_ESIRKEPOV -DCONF_WITH_ENERGYOUT_IO -DCONF_WITH_FIELD_IO -DCONF_WITH_FIELD_H5_IO -DCONF_WITH_PARTICLES_IO -DCONF_WITH_H5 -DVERBOSE_SIMULATION -I/opt/phdf5/include move_borders.cpp -c -o build-Linux-amd64-corei7/move_borders.o
#0 0x14bc6d2 llvm::sys::PrintStackTrace(IO_FILE) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x14bc6d2)
#1 0x14ba8e9 SignalHandler(int) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x14ba8e9)
#2 0x7f154d4c23e0 restore_rt (/lib64/libpthread.so.0+0x103e0)
#3 0x22b04ca mpi::MPICheckerAST::isSendRecvPair(mpi::MPICall const&, mpi::MPICall const&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22b04ca)
#4 0x22b0873 mpi::MPICheckerAST::checkSendRecvMatches(mpi::MPIRankCase const&, mpi::MPIRankCase const&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22b0873)
#5 0x22b096a mpi::MPICheckerAST::checkPointToPointSchema() const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22b096a)
#6 0x2231899 mpi::MPIChecker::checkASTDecl(clang::TranslationUnitDecl const
, clang::ento::AnalysisManager&, clang::ento::BugReporter&) const (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x2231899)
#7 0x22fd550 clang::ento::CheckerManager::runCheckersOnASTDecl(clang::Decl const
, clang::ento::AnalysisManager&, clang::ento::BugReporter&) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x22fd550)
#8 0x1c17dc4 (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) [clone .part.2906] clone .constprop.2908
#9 0x1c1ef8a clang::ParseAST(clang::Sema&, bool, bool) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1c1ef8a)
#10 0x1637086 clang::FrontendAction::Execute() (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1637086)
#11 0x1611789 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x1611789)
#12 0x16a9d1b clang::ExecuteCompilerInvocation(clang::CompilerInstance_) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x16a9d1b)
#13 0x81d7f8 cc1_main(llvm::ArrayRef<char const*>, char const_, void_) (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x81d7f8)
#14 0x7ff41f main (/tmp/mpichecker/llvm36/build/release/bin/clang-3.6+0x7ff41f)
#15 0x7f154c6818c5 __libc_start_main (/lib64/libc.so.6+0x208c5)
#16 0x81bfe9 _start /home/abuild/rpmbuild/BUILD/glibc-2.21/csu/../sysdeps/x86_64/start.S:121:0
Stack dump:
0. Program arguments: /tmp/mpichecker/llvm36/build/release/bin/clang++ -cc1 -triple x86_64-unknown-linux-gnu -analyze -disable-free -disable-llvm-verifier -main-file-name move_borders.cpp -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-eagerly-assume -analyzer-checker=core -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-output plist -w -mrelocation-model static -mthread-model posix -menable-no-infs -menable-no-nans -menable-unsafe-fp-math -ffp-contract=fast -ffast-math -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu corei7 -momit-leaf-frame-pointer -dwarf-column-info -resource-dir /tmp/mpichecker/llvm3
6/build/
release/bin/../lib/clang/3.6.2 -D PART_REAL=double -D sorting -D pml_boundaries -D EB_SOLVER=EB_YEE -D PP_VERSION=PP_BORIS -D FFT_FFTW3 -D SPECTRAL_SOLVER -D FF_ORDER=FF_TSC -D CA_METHOD=CA_ESIRKEPOV -D CONF_WITH_ENERGYOUT_IO -D CONF_WITH_FIELD_IO -D CONF_WITH_FIELD_H5_IO -D CONF_WITH_PARTICLES_IO -D CONF_WITH_H5 -D VERBOSE_SIMULATION -I /home/patrick/acronym//include -I /home/patrick/acronym//src/physconst -I /usr/lib64/mpi/gcc/openmpi/include/ -I /opt/phdf5/include -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8 -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/x86_64-suse-linux -internal-isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/local/include -internal-isystem /tmp/mpichecker/llvm36/build/release/bin/../lib/clang/3.6.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Ofast -fdeprecated-macro -fdebug-compilatio
n-dir /h
ome/patrick/acronym/src/grpic/generic -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -analyzer-checker lx.MPIChecker -analyzer-output=html -o /tmp/scan-build-2015-06-02-134905-351-1 -x c++ move_borders.cpp

  1.  <eof> parser at end of file
    

Reply to this email directly or view it on GitHub:
#2 (comment)

Sure. That file uses MPI_Allreduce, MPI_Comm_rank, MPI_Comm_size, MPI_Irecv, MPI_Isend and MPI_Waitall.

0ax1 commented

I updated the code. Please tell me about
the MPI_Irecvs, MPI_Isends with all arguments and types of the
arguments. Thanks for your endurance!

On 02.06.15 16:49, petschge wrote:

Sure. That file uses MPI_Allreduce, MPI_Comm_rank, MPI_Comm_size, MPI_Irecv, MPI_Isend and MPI_Waitall.


Reply to this email directly or view it on GitHub:
#2 (comment)

First of all: thank you for building this usefull checker and trying so hard to make this checker work for me. So the bad news is, it still crashes in the same way. The calls are:

line 79: MPI_Isend(double_, int, MPI_DOUBLE, int, 1, MPI_Comm, MPI_Request_);
line 87: MPI_IRecv(double_, int, MPI_DOUBLE, int, 2, MPI_Comm, MPI_Request_);
line 96: MPI_Isend(double_, int, MPI_DOUBLE, int, 2, MPI_Comm, MPI_Request_);
line 104: MPI_IRecv(double_, int, MPI_DOUBLE, int, 1, MPI_Comm, MPI_Request_);
line 227: MPI_Irecv(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);
line 230: MPI_ISend(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);
line 245: MPI_Irecv(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);
line 248: MPI_ISend(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);

The MPI_Comm that is used in all calls is created by MPI::COMM_WORLD.Create_cart. Could this use of the deprecated C++ MPI-Bindings (or the mix with C style calls) be the cause of the crash?

0ax1 commented

You're welcome! This project really benefits from your pioneering.
Unfortunately analyzing C++ code is not supported or tested at all
(yet). Sorry, if this hasn't been explicit enough in the readme
and that I overlooked this fact in your previous messages.
Although I can't surely say that I won't work, I would be surprised if
it would. I added that point to the limitations sections. I would really
like the checker being capable to analyze C++ code but before starting
out I will try to make it rock solid for C first.

Regarding the crash: I think the bindings are a good guess.
My question about the types was assuming there's something like a
dereferenced void pointer. The sends/recvs look completely standard.

On 03.06.15 01:00, petschge wrote:

First of all: thank you for building this usefull checker and trying so hard to make this checker work for me. So the bad news is, it still crashes in the same way. The calls are:

line 79: MPI_Isend(double_, int, MPI_DOUBLE, int, 1, MPI_Comm, MPI_Request_);
line 87: MPI_IRecv(double_, int, MPI_DOUBLE, int, 2, MPI_Comm, MPI_Request_);
line 96: MPI_Isend(double_, int, MPI_DOUBLE, int, 2, MPI_Comm, MPI_Request_);
line 104: MPI_IRecv(double_, int, MPI_DOUBLE, int, 1, MPI_Comm, MPI_Request_);
line 227: MPI_Irecv(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);
line 230: MPI_ISend(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);
line 245: MPI_Irecv(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);
line 248: MPI_ISend(int_, 1, MPI_INT, int, 1, MPI_Comm, MPI_Request_);

The MPI_Comm that is used in all calls is created by MPI::COMM_WORLD.Create_cart. Could this use of the deprecated C++ MPI-Bindings (or the mix with C style calls) be the cause of the crash?


Reply to this email directly or view it on GitHub:
#2 (comment)

I'm not sure if I understand. Are you talking about C++ code (because quite a few of the examples are in C++) or about C++ MPI bindings (which are deprecated anyway)?

0ax1 commented

I mean analyzing .cpp files with the MPI-Checker.
Of course the analyzer supports c++ in general
but I will have to incorporate the c++ language constructs
also into the checker to analyze c++ properly. Because of c++
being a lot more complex than c the checker currently only supports c.

On 03.06.15 09:22, petschge wrote:

I'm not sure if I understand. Are you talking about C++ code (because quite a few of the examples are in C++) or about C++ MPI bindings (which are deprecated anyway)?


Reply to this email directly or view it on GitHub:
#2 (comment)