bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bash-3.00.16: infinite loop in "make check" on Compaq/DEC Alpha OSF/1 4.


From: Nelson H. F. Beebe
Subject: bash-3.00.16: infinite loop in "make check" on Compaq/DEC Alpha OSF/1 4.0
Date: Fri, 7 Jan 2005 08:15:23 -0700 (MST)

Earlier this week, I applied the 16 patches to bash-3.0 that I found
at ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/ (and why, oh why, are
there not patched distributions bash-3.00.01.tar.gz through
bash-3.00.16.tar.gz at ftp://ftp.gnu.org/gnu/bash/, and why are the
patches for a critically-important GNU utility hidden away on a
completely separate machine that is only mentioned in the doc/FAQ
file?).

I did builds on 28 build environments on about 20 flavors of Unix.
Most were problem free, although the "make check" reports show more
failures than I would like to see.

I'd also like to see a test summary at the very end, like the report
"ALL TESTS PASSED" from GNU gawk, or something like GNU Texinfo
produces:

        PASS: node-whitespace
        PASS: top
        PASS: twofiles
        ===================
        All 21 tests passed
        ===================

It would also make the test output easier to read if the warnings were
indented to separate them visually from the test names, e.g.,

        % make check
        ...
        run-array
                warning: all of these tests will fail if arrays have not
                warning: been compiled into the shell
        run-array2
                warning: all of these tests will fail if arrays have not
                warning: been compiled into the shell
        run-braces
        run-builtins
        run-cond
        run-cprint
                warning: all of these tests will fail if the conditional 
command has not
                warning: been compiled into the shell
                warning: some of these tests will fail if extended pattern 
matching has not
                warning: been compiled into the shell
        run-dbg-support

On Compaq/DEC Alpha OSF/1 4.0, the "make check" run produced an
infinite loop in bash.  Here are the details:

        Machinetype:            DEC Alpha 4100-5/466 (4 CPUs, 466 MHz, 2GB 
RAM);          OSF/1 4.0F
        Remote cc version:      DEC C V5.9-005 on Digital UNIX V4.0 (Rev. 1229)
        Remote cxx version:     Compaq C++ V6.2-024 for Digital UNIX V4.0F 
(Rev. 1229)
        Package:                bash-3.0.16
        Remote uname:           OSF1 mosso.math.utah.edu V4.0 1229 alpha alpha 
unknown Tru64
        Configure environment:  CC=cc CFLAGS="-ieee -I/usr/local/include" 
CXX=cxx CXXFLAGS="-ieee -I/usr/local/include" 
LDFLAGS="-Wl,-rpath,/usr/local/lib -Wl,-oldstyle_liblookup -L/usr/local/lib" 
FC=f77 F77=f77 

The first problem that I hit was that y.tab.c would not compile; in
general, it is not safe to assume that the output of yacc/bison/byacc
on one system will compile correctly on another.  

I removed y.tab.c, and restarted the make; bison 1.875c then rebuilt
y.tab.[ch], and the compilations completed, but the validation checks
went into an infinite loop.

The "make check" output up to the point of the loop looks like this:

        run-trap
        warning: UNIX versions number signals differently.  If output differing
        warning: only in line numbers is produced, please do not consider this
        warning: a test failure.

Here is a sample of output from the "top" utility on the Alpha:

          PID USERNAME PRI NICE  SIZE   RES STATE   TIME    CPU COMMAND
        19255 beebe     53    0 3680K  344K run    72:16 99.90% bash

I ran gdb on that process, and got this traceback:

        (gdb) where
        #0  0x000003ff800d5df0 in _OtsMove () from /usr/shlib/libc.so
        #1  0x000003ff80192774 in fwrite_unlocked () from /usr/shlib/libc.so
        #2  0x000003ff800df710 in _doprnt () from /usr/shlib/libc.so
        #3  0x000003ff800dab0c in fprintf () from /usr/shlib/libc.so
        #4  0x000000012004d0a0 in kill_pid ()
        #5  0x000000012004b850 in notify_and_cleanup ()

I then continued it, letting it run for a few tens of seconds, and
interrupted it again in gdb: same traceback as before.  I did this
four times more, with the same traceback each time.

I then tried native c89 instead of cc: that produced a clean build,
with no infinite loop.

I then switched compilers yet again, doing a clean separate build with
gcc-3.3.3: the "make check" succeeded without looping

Two other builds on a Compaq Alpha Sierra running OSF/1 5.1 using native
c89 and cc were successful: no infinite loop there.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]