Re: dejagnu-1.6.3 make check failures

Jacob Bachmeyer <[email protected]> Tue, 21 Sep 2021 21:30:37 -0500
Newsgroups gmane.comp.sysutils.dejagnu.general
Message-ID <[email protected]>
Martin Cermak wrote:
> Hi folks,
>
> running make check for dejagnu-1.6.3 on Fedora 34.  I'm seeing
> test failures per attached runtest sum and log files.  I'm
> wondering whether these issues are known.  Looking at the open
> bug list, I don't seem to see a matching one.
>
> Thoughts?

I was wondering how long it would take for Fedora to pick up the 1.6.3 
release...

Back to the point, this is actually a bug in Expect 5.45.4 (and possibly 
other versions) that is tracked as bug#49078 in the GNU debbugs instance 
after the LinuxFromScratch people initially reported it:  Expect is 
incorrectly treating a line exactly 64 bytes long as EOF.

I have been investigating the issue but have not yet tracked down the 
exact cause or exactly where to go to push a fix upstream.  Does Fedora 
have someone sufficiently familiar with the Expect codebase and Tcl 
community to get this fixed?

My notes so far:

    An input line exactly 64 bytes long (64 bytes followed by newline) 
causes exp_get_next_event in exp_event.c to return -9 (EXP_DATA_NEW) 
which exp_interpreter in exp_main_sub.c incorrectly treats as EOF.  This 
causes Expect to exit, but somehow leaves the newline in the terminal 
buffer.  If Expect is run under GDB, the stray newline will be read and 
processed by GDB, typically causing various mayhem; if GDB is attached 
from another terminal, the stray newline will be read and processed by 
the shell after Expect exits.
    The issue does not occur if Expect's input is a pipe, only when the 
child Expect is taking input from a pty.  The input does not need to 
arrive in a single burst and is unaffected by the basic *nix line 
editing; the issue occurs when a line 64 bytes long is sent to the child 
Expect.  This can also be observed using ssh and/or xterm, as long as 
the Expect process is using a pty.


-- Jacob