lapack-pre-github-historical-releases icon indicating copy to clipboard operation
lapack-pre-github-historical-releases copied to clipboard

GNU Fortran 9.2.0 released 12 Aug 2019 throws segfault on Nonsymmetric Eigenvalue tests

Open blastwave opened this issue 4 years ago • 1 comments

A trivial "make all" with recently released GNU Fortran 9.2.0 results in :

/opt/bw/gcc9/bin/gfortran -o xeigtstz zchkee.o zbdt01.o zbdt02.o zbdt03.o zbdt05.o zchkbb.o zchkbd.o zchkbk.o zchkbl.o zchkec.o zchkgg.o zchkgk.o zchkgl.o zchkhb.o zchkhs.o zchkst.o zchkst2stg.o zchkhb2stg.o zckcsd.o zckglm.o zckgqr.o zckgsv.o zcklse.o zcsdts.o zdrges.o zdrgev.o zdrges3.o zdrgev3.o zdrgsx.o zdrgvx.o zdrvbd.o zdrves.o zdrvev.o zdrvsg.o zdrvsg2stg.o zdrvst.o zdrvst2stg.o zdrvsx.o zdrvvx.o zerrbd.o zerrec.o zerred.o zerrgg.o zerrhs.o zerrst.o zget02.o zget10.o zget22.o zget23.o zget24.o zget35.o zget36.o zget37.o zget38.o zget51.o zget52.o zget54.o zglmts.o zgqrts.o zgrqts.o zgsvts3.o zhbt21.o zhet21.o zhet22.o zhpt21.o zhst01.o zlarfy.o zlarhs.o zlatm4.o zlctes.o zlctsx.o zlsets.o zsbmv.o zsgt01.o zslect.o zstt21.o zstt22.o zunt01.o zunt03.o dlafts.o dlahd2.o dlasum.o dlatb9.o dstech.o dstect.o dsvdch.o dsvdct.o dsxt1.o alahdg.o alasum.o alasvm.o alareq.o ilaenv.o xerbla.o xlaenv.o chkxer.o ../../libtmglib.a ../../liblapack.a ../../librefblas.a gmake[2]: Leaving directory '/home/dclarke/lapack-release/TESTING/EIG' NEP: Testing Nonsymmetric Eigenvalue Problem routines ./EIG/xeigtstz < nep.in > znep.out 2>&1 /bin/bash: line 1: 20082 Segmentation fault ./EIG/xeigtstz < nep.in > znep.out 2>&1 gmake[1]: *** [Makefile:464: znep.out] Error 139 gmake[1]: Leaving directory '/home/dclarke/lapack-release/TESTING' gmake: *** [Makefile:43: lapack_testing] Error 2

boe13$ $FORTRAN --version GNU Fortran (Blastwave.org 20190812125925) 9.2.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

boe13$ date Mon Aug 12 23:10:13 GMT 2019 boe13$

This is on Red Hat Enterprise Linux Server release 7.4 for x86_64.

The GNU Fortran compiler was carefully tested during a four stage bootstrap and the test results are exceptional : https://gcc.gnu.org/ml/gcc-testresults/2019-08/msg01328.html

Appears to be a fault in zchkee.f at line 1135 :

boe13$ boe13$ gdb ./TESTING/EIG/xeigtstz GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-100.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /home/dclarke/lapack-release/TESTING/EIG/xeigtstz...done. (gdb) run < ./TESTING/nep.in Starting program: /home/dclarke/lapack-release/./TESTING/EIG/xeigtstz < ./TESTING/nep.in

Program received signal SIGSEGV, Segmentation fault. 0x0000000000401342 in zchkee () at zchkee.f:1135 1135 A = 0.0 Missing separate debuginfos, use: debuginfo-install glibc-2.17-196.el7.x86_64 (gdb) where #0 0x0000000000401342 in zchkee () at zchkee.f:1135 #1 0x000000000040ceff in main (argc=1, argv=0x7fffffffe9eb) at zchkee.f:2505 #2 0x00007ffff6e4ac05 in __libc_start_main () from /lib64/libc.so.6 #3 0x0000000000401279 in _start () (gdb)

Note however that trivial test code seems to run just fine with librefblas :

boe13$ cat -n matrix.f90 1 2 3 implicit none 4 5 integer, parameter :: N=2 6 7 complex16, parameter :: imag1 = cmplx(0.d0, 1.d0) 8 complex16 :: a(N,N), x(N), y(N) 9 10 complex16 :: alpha, beta 11 12 a(:,:)=imag1; 13 x(:)=1.d0 14 y(:)=0.d0 15 16 alpha=1.d0; beta=0.d0 17 18 call zgemv('N',N,N,alpha,a,N,x,1,beta,y,1) 19 20 21 print, y 22 23 24 end
25 26 boe13$

boe13$ $FORTRAN -O0 -g -ggdb -frecursive -c -o matrix.o matrix.f90 boe13$ $CC $CFLAGS -L/opt/bw/lib -L../lapack-release -o matrix matrix.o -lrefblas -lgfortran

boe13$ ldd matrix linux-vdso.so.1 => (0x00007ffe17b61000) libgfortran.so.5 => /opt/bw/lib/libgfortran.so.5 (0x00007f49f0f69000) libc.so.6 => /lib64/libc.so.6 (0x00007f49f0b9e000) libquadmath.so.0 => /opt/bw/gcc9/lib/../lib64/libquadmath.so.0 (0x00007f49f0957000) libm.so.6 => /lib64/libm.so.6 (0x00007f49f0655000) libgcc_s.so.1 => /opt/bw/gcc9/lib/../lib64/libgcc_s.so.1 (0x00007f49f043c000) /lib64/ld-linux-x86-64.so.2 (0x00005651322cb000) boe13$ boe13$ ./matrix (0.0000000000000000,2.0000000000000000) (0.0000000000000000,2.0000000000000000) boe13$

-- Dennis Clarke RISC-V/SPARC/PPC/ARM/CISC UNIX and Linux support

blastwave avatar Aug 12 '19 23:08 blastwave

This might well be a stack size issue. Can you try increasing your stack size and running again?

tkoenig1 avatar Oct 04 '19 05:10 tkoenig1