[MOAB-dev] problem with pcomm

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


Just an update: clang with HDF5 (1.8.12) and NetCDF (4.3.1.1) on
Mavericks did not segfault with your example.

Lorenzo, can you comment out the CXX_LDFLAGS in line 660 and then run
"autoreconf -fi", and reconfigure with same options to see if it fixes
the issue you are seeing ?

Vijay

On Thu, Dec 3, 2015 at 9:47 AM, Vijay S. Mahadevan <vijay.m at gmail.com> wrote:
> 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