dejagnu
[Top][All Lists]
Advanced

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

Re: dejagnu-1.6.3 make check failures


From: Jacob Bachmeyer
Subject: Re: dejagnu-1.6.3 make check failures
Date: Tue, 21 Sep 2021 21:30:37 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17 Mnenhy/0.7.6.0

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




reply via email to

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