NBISweden / MrBayes

MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. For documentation and downloading the program, please see the home page:
http://NBISweden.github.io/MrBayes/
GNU General Public License v3.0
234 stars 79 forks source link

Build error (core dump) on AlmaLinux with dev branch and v3.2.7a #264

Closed cymon closed 2 years ago

cymon commented 2 years ago

Having build issue with both the dev repo and v3.2.7a release building on AlmaLinux v 8.5 - binary builds but core dumps.

What is the current observed behaviour?

Compiled binary core dumps.

What is the expected/wanted behaviour?

Not to core dump.

How may we reproduce this bug?

See below

Would you be able to compile and run MrBayes to test fixes to this bug?

What is the environment that you run MrBayes in?

Other information that may be of use to us in resolving this issue

Versions: glibc 2.8.2 openmpi 4.1.1 gcc 8.5.0

Builds: -- Beagle $ wget https://github.com/beagle-dev/beagle-lib/archive/refs/tags/v3.1.2.zip ... $ ./autogen.sh $ ./configure --prefix=/share/apps $ make $ make install

--mb $ wget https://github.com/NBISweden/MrBayes/archive/v3.2.7a.tar.gz ... $ ./configure --enable-sse=yes --with-mpi --prefix=/share/apps --with-beagle=/share/apps checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for pdflatex... /usr/bin/pdflatex checking for bibtex... /usr/bin/bibtex checking for style of include used by make... GNU checking whether to compile using MPI... yes checking for mpicc... mpicc checking for gcc... (cached) mpicc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether mpicc accepts -g... yes checking for mpicc option to accept ISO C89... none needed checking whether mpicc understands -c and -o together... yes checking dependency style of mpicc... gcc3 checking for function MPI_Init... yes checking for mpi.h... yes checking for sqrt in -lm... yes checking how to run the C preprocessor... mpicc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes configure: Trying to locate Beagle (hmsbeagle-1) in '/share/apps' checking libhmsbeagle/beagle.h usability... yes checking libhmsbeagle/beagle.h presence... yes checking for libhmsbeagle/beagle.h... yes checking for beagleCreateInstance in -lhmsbeagle... yes configure: Found Beagle in '/share/apps' checking for beagleSetCPUThreadCount in -lhmsbeagle... yes configure: Using BEAGLE_CFLAGS="-I/share/apps/include/libhmsbeagle-1 -pthread" configure: Using BEAGLE_LIBS="-L/share/apps/lib -Wl,-rpath,/share/apps/lib -lhmsbeagle" checking float.h usability... yes checking float.h presence... yes checking for float.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking for memory.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for size_t... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking for C compiler vendor... gnu checking for a sed that does not truncate output... /usr/bin/sed checking for C compiler version... 8.5.0 checking CFLAGS for maximum warnings... -Wall checking for x86 cpuid output... unknown checking for x86-AVX xgetbv output... unknown checking for x86 cpuid 0x00000000 output... 15:756e6547:6c65746e:49656e69 checking for x86 cpuid 0x80000000 output... 80000008:0:0:0 checking for x86 cpuid 0x00000001 output... 50654:7080800:80002001:1f8bfbff checking for x86 cpuid 0x00000007 output... 0:0:0:4000000 checking for x86 cpuid 0x80000001 output... 0:0:1:20100800 checking whether RDRND is supported by the processor... no checking whether BMI1 is supported by the processor... no checking whether BMI2 is supported by the processor... no checking whether ADX is supported by the processor... no checking whether MPX is supported by the processor... no checking whether PREFETCHWT1 is supported by the processor... no checking whether ABM is supported by the processor... no checking whether MMX is supported by the processor... yes checking whether MMX is supported by the processor and OS... yes checking whether C compiler accepts -mmmx... yes checking whether SSE is supported by the processor... yes checking whether SSE is supported by the processor and OS... yes checking whether C compiler accepts -msse... yes checking whether SSE2 is supported by the processor... yes checking whether SSE2 is supported by the processor and OS... yes checking whether C compiler accepts -msse2... yes checking whether SSE3 is supported by the processor... no checking whether SSSE3 is supported by the processor... no checking whether SSE4.1 is supported by the processor... no checking whether SSE4.2 is supported by the processor... no checking whether SSE4a is supported by the processor... no checking whether SHA is supported by the processor... no checking whether AES is supported by the processor... no checking whether AVX is supported by the processor... no checking whether FMA3 is supported by the processor... no checking whether FMA4 is supported by the processor... no checking whether XOP is supported by the processor... no checking whether AVX2 is supported by the processor... no checking whether AVX512-F is supported by the processor... no checking whether AVX512-CD is supported by the processor... no checking whether AVX512-PF is supported by the processor... no checking whether AVX512-ER is supported by the processor... no checking whether AVX512-VL is supported by the processor... no checking whether AVX512-BW is supported by the processor... no checking whether AVX512-DQ is supported by the processor... no checking whether AVX512-IFMA is supported by the processor... no checking whether AVX512-VBMI is supported by the processor... no checking for floor... yes checking for memset... yes checking for pow... yes checking for sqrt... yes checking for strchr... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/manual/Makefile config.status: creating doc/tutorial/Makefile config.status: creating examples/Makefile config.status: creating src/Makefile config.status: creating src/config.h config.status: executing depfiles commands $ make $ src/mb Illegal instruction (core dumped)

From journal -xe $ journalct -xe

Mar 18 13:52:01 <...> systemd-coredump[106926]: Process 106918 (mb) of user 1001 dumped core.

                                                   Stack trace of thread 106918:
                                                   #0  0x00007f394e0ba958 fi_psm3_ini (libfabric.so.1)
                                                   #1  0x00007f394dfa1318 fi_ini (libfabric.so.1)
                                                   #2  0x00007f394dfa1c75 fi_getinfo (libfabric.so.1)
                                                   #3  0x00007f394e3ad06a usnic_component_init (mca_btl_usnic.so)
                                                   #4  0x00007f3959d6b02d mca_btl_base_select (libopen-pal.so.40)
                                                   #5  0x00007f394e9db346 mca_bml_r2_component_init (mca_bml_r2.so)
                                                   #6  0x00007f395b2a3c54 mca_bml_base_init (libmpi.so.40)
                                                   #7  0x00007f395b2e2fa4 ompi_mpi_init (libmpi.so.40)
                                                   #8  0x00007f395b2813b2 PMPI_Init (libmpi.so.40)
                                                   #9  0x00000000004029b4 main (mb)
                                                   #10 0x00007f395ac3d493 __libc_start_main (libc.so.6)
                                                   #11 0x0000000000402a8e _start (mb)

                                                   Stack trace of thread 106924:
                                                   #0  0x00007f395ad17127 epoll_wait (libc.so.6)
                                                   #1  0x00007f395927c4a9 epoll_dispatch (libevent_core-2.1.so.6)
                                                   #2  0x00007f3959272188 event_base_loop (libevent_core-2.1.so.6)
                                                   #3  0x00007f3956ca0aa6 progress_engine (libpmix.so.2)
                                                   #4  0x00007f395afe717a start_thread (libpthread.so.0)
                                                   #5  0x00007f395ad16df3 __clone (libc.so.6)

                                                   Stack trace of thread 106923:
                                                   #0  0x00007f395ad0ba71 __poll (libc.so.6)
                                                   #1  0x00007f395927b889 poll_dispatch (libevent_core-2.1.so.6)
                                                   #2  0x00007f3959272188 event_base_loop (libevent_core-2.1.so.6)
                                                   #3  0x00007f3959d31d96 progress_engine (libopen-pal.so.40)
                                                   #4  0x00007f395afe717a start_thread (libpthread.so.0)
                                                   #5  0x00007f395ad16df3 __clone (libc.so.6)

-- Subject: Process 106918 (mb) dumped core

cymon commented 2 years ago

OK, well, it appears to be a problem with the OpenMPI packages for 4.1.1 in the AlmaLinux repos (openmpi-4.1.1-2.el8.src.rpm and openmpi-4.1.1-2.el8.src.rpm) current as of 27th April 2022. I downloaded the OpenMPI source code for version 4.1.3, compiled it, recompiled Mrbayes as described above, and all is well... sigh.