Hi,

This is a "help wanted" message.  When I run GCC regression test on
loongarch64-linux-gnu, expect occasionally crashes with a segment fault.
The stack backtrace is like:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007ffff0a35910 in TclpAlloc () from /usr/lib/libtcl8.6.so
[Current thread is 1 (Thread 0x7ffff05d8420 (LWP 9228))]
(gdb) bt
#0  0x00007ffff0a35910 in TclpAlloc () from /usr/lib/libtcl8.6.so
#1  0x00007ffff08b0ed4 in sortins () from /usr/lib/libtcl8.6.so
#2  0x00007ffff08b18d0 in mergeins () from /usr/lib/libtcl8.6.so
#3  0x00007ffff08b3654 in fixempties () from /usr/lib/libtcl8.6.so
#4  0x00007ffff08b2564 in optimize () from /usr/lib/libtcl8.6.so
#5  0x00007ffff08aa9a0 in nfanode () from /usr/lib/libtcl8.6.so
#6  0x00007ffff08aa8a4 in nfatree () from /usr/lib/libtcl8.6.so
#7  0x00007ffff08aa894 in nfatree () from /usr/lib/libtcl8.6.so
#8  0x00007ffff08aa894 in nfatree () from /usr/lib/libtcl8.6.so
#9  0x00007ffff08aa894 in nfatree () from /usr/lib/libtcl8.6.so
#10 0x00007ffff08a6c00 in TclReComp () from /usr/lib/libtcl8.6.so
#11 0x00007ffff0a2155c in CompileRegexp () from /usr/lib/libtcl8.6.so
#12 0x00007ffff0a20e74 in Tcl_GetRegExpFromObj () from /usr/lib/libtcl8.6.so
#13 0x00007ffff08ebe48 in Tcl_RegsubObjCmd () from /usr/lib/libtcl8.6.so
#14 0x00007ffff08c6e64 in Dispatch () from /usr/lib/libtcl8.6.so
#15 0x00007ffff08c6f10 in TclNRRunCallbacks () from /usr/lib/libtcl8.6.so
#16 0x00007ffff08c6650 in Tcl_EvalObjv () from /usr/lib/libtcl8.6.so
#17 0x00007ffff08c8f7c in TclEvalEx () from /usr/lib/libtcl8.6.so
#18 0x00007ffff09f1270 in Tcl_FSEvalFileEx () from /usr/lib/libtcl8.6.so
#19 0x00007ffff09f0f00 in Tcl_FSEvalFile () from /usr/lib/libtcl8.6.so
#20 0x00007ffff09ef26c in Tcl_EvalFile () from /usr/lib/libtcl8.6.so
#21 0x00007ffff0afc658 in exp_interpret_cmdfilename ()
   from /usr/lib/libexpect5.45.4.so
#22 0x0000000120000c80 in main ()

The crashes happen on both my own LoongArch board and
gcc401.fsffrance.org.  So I don't think it was an "only me" problem.

The segment fault is not deterministic.  A Expect command like

cd /path/to/gcc/build/gcc
expect -- /usr/share/dejagnu/runtest.exp --tool gfortran 
dg.exp=bind-c-contiguous-1.f90

sometimes succeeds, sometimes immediately segfaults, sometimes prints
several lines of strange error message and then exits abnormally.

Usually I don't like to send "help wanted" messages, but this time I
have no idea how to fix (or even triage) the problem.  I don't even know
which component (Tcl? Expect? GCC? Glibc? Kernel?) I should blame.  So
it seems I really need some help now...

-- 
Xi Ruoyao <xry...@xry111.site>
School of Aerospace Science and Technology, Xidian University

Reply via email to