[MOAB-dev] problem with pcomm

Vijay S. Mahadevan vijay.m at gmail.com
Thu Dec 3 08:47:38 CST 2015


Lorenzo, on my Mavericks machine, I cannot reproduce your error. Also,
my linker line does not have -stdlib=libstdc++ since I'm using GNU
instead of clang. I should be able to check this also momentarily.

Rajeev added this change [1] as part of fixes for Yosemite. On looking
at it again, I feel that CXX_LDFLAGS does not need to be modified at
all and adding lc++ to LIBS should suffice. Unfortunately, I don't
have Yosemite locally but I can ask him to check this quick.

We should not be imposing restrictions on users to not use C++11 in
their own downstream applications. So if this is not the case, we will
definitely fix this.

I'll keep you updated on this change.

Vijay

[1] https://bitbucket.org/fathomteam/moab/commits/83470c69c7d360d5167b326db2b3c3e192ca780a

On Thu, Dec 3, 2015 at 9:34 AM, Lorenzo Alessio Botti
<lorenzoalessiobotti at gmail.com> wrote:
> Dear all,
> thanks for help it seems that the problem is related to the
> -stdlib=libstdc++ flag.
> Adding it to the compiler flags the code runs fine.
> Recent moab builds rely on this flag while older didn’t.
> The issue is that the flag will not allow me to use c++11, right?
> Is there a way to build moab without such flag.
>
> Bests.
> Lorenzo
>
>
> On 02 Dec 2015, at 18:58, Grindeanu, Iulian R. <iulian at mcs.anl.gov> wrote:
>
> Hi Lorenzo,
> This seems to be a problem on your system.
> Maybe gdb is broken?
>
> http://stackoverflow.com/questions/33159172/unable-to-step-into-a-class-method-gdb
>
> Indeed, the message is not helpful in finding out what is the issue
>
> Maybe Vijay or Rajeev can help more, they do compile on macs.
>
> How did you configure hdf5? Did you use the same mpich version?
>
>
> Thanks,
> Iulian
> ________________________________
> From: Lorenzo Alessio Botti [lorenzoalessiobotti at gmail.com]
> Sent: Wednesday, December 02, 2015 11:33 AM
> To: MOAB dev
> Cc: Grindeanu, Iulian R.
> Subject: Re: [MOAB-dev] problem with pcomm
>
> This is what I get with gdb
> Not very informative, is it?
>
> moab is compiled with —enable-debug
> Should I run with or compile with particular flags?
>
> Reading symbols for shared libraries
> ++++++++..............bfd_mach_o_scan_read_symtab_symbol: symbol "_bzero" is
> unsupported 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_memccpy" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_memchr" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_memcmp" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_memcpy" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_memmove" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_memset" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_strchr" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_strcmp" is unsupported
> 'indirect' reference: setting to undefined
> bfd_mach_o_scan_read_symtab_symbol: symbol "_strncmp" is unsupported
> 'indirect' reference: setting to undefined
> ...warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Objects/coretls.build/coretls.build/Objects-normal/x86_64/system_coretls_vers.o"
> - no debug information available for "system_coretls_vers.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_ciphersuites.a(tls_ciphersuites.o)"
> - no debug information available for "tls_ciphersuites.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslSession.o)"
> - no debug information available for "sslSession.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslCipherSpecs.o)"
> - no debug information available for "sslCipherSpecs.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslDigests.o)"
> - no debug information available for "sslDigests.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslCrypto.o)"
> - no debug information available for "sslCrypto.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslChangeCipher.o)"
> - no debug information available for "sslChangeCipher.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslCert.o)"
> - no debug information available for "sslCert.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslKeyExchange.o)"
> - no debug information available for "sslKeyExchange.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslAlertMessage.o)"
> - no debug information available for "sslAlertMessage.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslHandshake.o)"
> - no debug information available for "sslHandshake.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslHandshakeFinish.o)"
> - no debug information available for "sslHandshakeFinish.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(tls1Callouts.o)"
> - no debug information available for "tls1Callouts.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(sslHandshakeHello.o)"
> - no debug information available for "sslHandshakeHello.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(tls_handshake.o)"
> - no debug information available for "tls_handshake.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_handshake.a(ssl3Callouts.o)"
> - no debug information available for "ssl3Callouts.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(tls1RecordCallouts.o)"
> - no debug information available for "tls1RecordCallouts.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(ssl3RecordCallouts.o)"
> - no debug information available for "ssl3RecordCallouts.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(tls_record.o)"
> - no debug information available for "tls_record.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(sslRc4Cipher.o)"
> - no debug information available for "sslRc4Cipher.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(sslMemory.o)"
> - no debug information available for "sslMemory.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(sslUtils.o)"
> - no debug information available for "sslUtils.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(symCipherParams.o)"
> - no debug information available for "symCipherParams.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(sslNullCipher.o)"
> - no debug information available for "sslNullCipher.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(symCipher.o)"
> - no debug information available for "symCipher.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(tls_digest.o)"
> - no debug information available for "tls_digest.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(tls_hashhmac.o)"
> - no debug information available for "tls_hashhmac.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_record.a(tls_hmac.o)"
> - no debug information available for "tls_hmac.c".
>
> warning: Could not find object file
> "/BinaryCache/coreTLS/coreTLS-35.40.1~1/Symbols/BuiltProducts/libcoretls_stream_parser.a(tls_stream_parser.o)"
> - no debug information available for "tls_stream_parser.c".
>
> ...................... done
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x0000000000001030
> std::vector<char, std::allocator<char> >::begin (this=0x1030) at
> stl_vector.h:340
> 340       { return const_iterator(this->_M_impl._M_start); }
>
>
> On 02 Dec 2015, at 18:29, Grindeanu, Iulian R. <iulian at mcs.anl.gov> wrote:
>
> Dear Lorenzo,
> you just configure moab with --enable-debug
>
> something like this:
>
> ./configure --disable-fortran --disable-imesh
> --with-mpi=/Users/ihabia/src2/mpich-3.2/mpich3/
> --with-hdf5=/Users/ihabia/src2/hdf5-1.8.16/hdf5/
> --prefix=/Users/ihabia/src2/moab-4.8.2/moab  --enable-debug
>
> I see now that you use hdf5 1.8.16, the make check error you see could be
> related to this
> (we test regularly with 1.8.12)
>
> Still, your crash with pcomm is unrelated to hdf5 version
>
> Iulian
>
> ________________________________
> From: Lorenzo Alessio Botti [lorenzoalessiobotti at gmail.com]
> Sent: Wednesday, December 02, 2015 11:11 AM
> To: MOAB dev
> Cc: Grindeanu, Iulian R.
> Subject: Re: [MOAB-dev] problem with pcomm
>
> Dear Iulian, how do I enable debug mode?
> I want to be sure compile with the right flags…
>
> Thanks
> Lorenzo
>
>
> On 02 Dec 2015, at 18:03, Grindeanu, Iulian R. <iulian at mcs.anl.gov> wrote:
>
> Hi Lorenzo,
> Your code works on my linux machine.
> It could be something specific to OSX,
> Sometimes we find that OSX uncovers bugs
>
> You mentioned that there is a seg fault at pcomm_tag(mbImpl, true)
>
> It just creates there a sparse tag with name __PARALLEL_COMM, which will be
> used to store ParallelComm objects on the root (entity handle = 0)
>
> Can you compile in debug mode and give more trace info?
>
> Thanks,
> Iulian
>
> ________________________________
> From: Lorenzo Alessio Botti [lorenzoalessiobotti at gmail.com]
> Sent: Wednesday, December 02, 2015 10:20 AM
> To: MOAB dev
> Cc: Grindeanu, Iulian R.; Vijay S. Mahadevan
> Subject: Re: [MOAB-dev] problem with pcomm
>
>
>
> =====================================
>    MOAB 4.8.2: test/test-suite.log
> =====================================
>
> # TOTAL: 35
> # PASS:  35
> # SKIP:  0
> # XFAIL: 0
> # FAIL:  0
> # XPASS: 0
> # ERROR: 0
>
> .. contents:: :depth: 2
>
> This is the sole failure.
>
> ==============================================
>    MOAB 4.8.2: test/parallel/test-suite.log
> ==============================================
>
> # TOTAL: 11
> # PASS:  10
> # SKIP:  0
> # XFAIL: 0
> # FAIL:  1
> # XPASS: 0
> # ERROR: 0
>
> .. contents:: :depth: 2
>
> FAIL: parallel_hdf5_test
> ========================
>
> Running test_write_elements ...
> Running test_write_elements ...
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Running test_write_shared_sets ...
> Running test_write_shared_sets ...
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Warning: acis file has sequence numbers!
> Running test_var_length_parallel ...
> Running test_var_length_parallel ...
> Running test_read_elements ...
> Running test_read_elements ...
> Running test_read_elements_by_rank ...
> Running test_read_elements_by_rank ...
> Running test_read_tags ...
> Running test_read_tags ...
> Running test_read_global_tags ...
> Running test_read_global_tags ...
> Running test_read_sets ...
> Running test_read_sets ...
> Running test_read_sets_bcast_dups ...
> Running test_read_sets_bcast_dups ...
> Running test_read_sets_read_dups ...
> Running test_read_sets_read_dups ...
> Running test_read_bc_sets ...
> Running test_read_bc_sets ...
> Fatal error in MPI_Reduce: Invalid datatype, error stack:
> MPI_Reduce(1258): MPI_Reduce(sbuf=0x7fff533896d4, rbuf=0x7fff533896c8,
> count=3, MPI_DATATYPE_NULL, MPI_SUM, root=0, MPI_COMM_WORLD) failed
> MPI_Reduce(1168): Datatype for argument datatype is a null datatype
> FAIL parallel_hdf5_test (exit status: 3)
>
>
> The whole code, without any MPI initialisation,
>
> #include "moab/ParallelComm.hpp"
> #include "MBParallelConventions.h"
> #include "MBTagConventions.hpp"
> #include "moab/Core.hpp"
> #include "moab_mpi.h"
>
> using namespace moab;
>
> int main(int argc, char **argv)
> {
>   Core moab;
>   Interface& imoab = moab;
>
>   ParallelComm* pcomm = ParallelComm::get_pcomm(&moab, 0);
>   if (0 == pcomm)
>   {
>     pcomm = new ParallelComm(&imoab, MPI_COMM_WORLD);
>   }
>   delete pcomm;
>   return EXIT_SUCCESS;
> };
>
> ~
>
> This is the Makefile
> MOAB_LIB_DIR = /Users/ihabia/src2/moab-4.8.2/moab/
> include $(MOAB_LIB_DIR)/lib/moab.make
>
> %.o : %.cpp
>         @echo "Compiling ("$(CXX)") "$<" "
>         @$(CXX) ${MOAB_INCLUDES} -c $< -o $@
>
> CXX = mpicxx -O2 -DNDEBUG
>
> objects := $(patsubst %.cpp,%.o,$(wildcard ./*.cpp))
>
> mbtestrun : $(objects)
>         @echo "Linking "$(CURDIR)"/"$@
>         @$(CXX) $(objects) -o $@ $(MOAB_LIBS_LINK)
>
> .PHONY : clean
>
> clean :
>         @rm $(objects)
>
>
> and this is mob.make
>
> # The values below are for an un-installed copy of MOAB used directly
> # from its build build directory.  These values will be overridden below
> # for installed copies of MOAB.
> MOAB_LIBDIR = /Users/ihabia/src2/moab-4.8.2/src/.libs
> MOAB_INCLUDES = -I/Users/ihabia/src2/moab-4.8.2/src \
>                 -I/Users/ihabia/src2/moab-4.8.2/src \
>                 -I/Users/ihabia/src2/moab-4.8.2/src/oldinc \
>                 -I/Users/ihabia/src2/moab-4.8.2/src/parallel \
>                 -I/Users/ihabia/src2/moab-4.8.2/src/parallel
>
> MOAB_INCLUDES +=
>
> MOAB_CPPFLAGS =        -I/Users/ihabia/src2/hdf5-1.8.16/hdf5//include
> -isystem /Users/ihabia/src2/hdf5-1.8.16/hdf5//include
> MOAB_CXXFLAGS =  -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align
> -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter
> -stdlib=libstdc++ -O2 -DNDEBUG
> MOAB_CFLAGS =  -Wall -pipe -pedantic -Wno-long-long -Wextra -Wcast-align
> -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused-parameter -O2
> -DNDEBUG
> MOAB_FFLAGS =
> MOAB_FCFLAGS =
> MOAB_LDFLAGS =          -L/Users/ihabia/src2/hdf5-1.8.16/hdf5//lib
> -stdlib=libstdc++
>
>
> MOAB_LIBS_LINK = ${MOAB_LDFLAGS} -L${MOAB_LIBDIR} -lMOAB    -lhdf5    -lc++
> -lz -ldl -lm       -lc++ -lz -ldl -lm
> DAGMC_LIBS_LINK = ${MOAB_LDFLAGS} -L${MOAB_LIBDIR}  -lMOAB    -lhdf5
> -lc++ -lz -ldl -lm       -lc++ -lz -ldl -lm
>
> MOAB_CXX = /Users/ihabia/src2/mpich-3.2/mpich3//bin/mpicxx
> MOAB_CC  = /Users/ihabia/src2/mpich-3.2/mpich3//bin/mpicc
> MOAB_FC  =
> MOAB_F77  =
>
> # Override MOAB_LIBDIR and MOAB_INCLUDES from above with the correct
> # values for the installed MOAB.
>
> MOAB_LIBDIR=/Users/ihabia/src2/moab-4.8.2/moab/lib
> MOAB_INCLUDES=-I/Users/ihabia/src2/moab-4.8.2/moab/include
>
>
>
>
> On 02 Dec 2015, at 16:17, Grindeanu, Iulian R. <iulian at mcs.anl.gov> wrote:
>
> Hi Lorenzo,
>
> Do you initialize MPI before using moab?
>
>
> Iulian
>
> ________________________________________
> From: moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on behalf
> of Vijay S. Mahadevan [vijay.m at gmail.com]
> Sent: Wednesday, December 02, 2015 9:08 AM
> To: Lorenzo Alessio Botti
> Cc: MOAB dev
> Subject: Re: [MOAB-dev] problem with pcomm
>
> Lorenzo, we test your configuration very regularly (on buildbot and on
> linux machines) and I haven't seen any issues with ParallelComm. Does
> "make check" pass cleanly ?
>
> I'll see if I can replicate this on my Mac.
>
> Vijay
>
> On Wed, Dec 2, 2015 at 8:49 AM, Lorenzo Alessio Botti
> <lorenzoalessiobotti at gmail.com> wrote:
>
> Dear All,
> I have a problem with the latest moab builds (both 4.8.2 and 4.9)…
> I cannot run the following code in an application linked to moab
>
>  Core moab;
>
>  Interface& imoab = moab;
>
>
>  ParallelComm* pcomm = ParallelComm::get_pcomm(&moab, 0);
>
>  if (0 == pcomm)
>
>  {
>
>    pcomm = new ParallelComm(&imoab, MPI_COMM_WORLD);
>
>  }
>
>  delete pcomm;
>
>
> It seems that a segmentation fault is triggered during the initialization of
> the pcomm in particular in this function
>
>  Tag ParallelComm::pcomm_tag(Interface *impl,
>
>                              bool create_if_missing)
>
>
> with create_if_missing = true.
>
> I’m building on OS X.
> Have you ever experienced this issue? What can I do?
>
> I attach the config.log below
>
>
>
> Bests
> Lorenzo
>
>


More information about the moab-dev mailing list