Bug 1273500 - Inconsistent state after SIGINT during eval
Inconsistent state after SIGINT during eval
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: tcsh (Show other bugs)
7.2
x86_64 Linux
medium Severity medium
: rc
: ---
Assigned To: David Kaspar [Dee'Kej]
Iveta Wiedermann
: Patch
Depends On: 1219923
Blocks: 1203710 1313485 1289025 1295829
  Show dependency treegraph
 
Reported: 2015-10-20 11:05 EDT by David Kaspar [Dee'Kej]
Modified: 2016-11-03 21:46 EDT (History)
5 users (show)

See Also:
Fixed In Version: tcsh-6.18.01-10.el7
Doc Type: Bug Fix
Doc Text:
*tcsh* no longer in an inconsistent state after a command interruption Interrupting the "eval sleep 10" command left the *tcsh* shell in an incosistent state. Consequently, it was necessary to press the Ctrl+D key combination twice to successfully exit the shell. With this update, *tcsh* correctly exits after pressing Ctrl+D once.
Story Points: ---
Clone Of: 1219923
Environment:
Last Closed: 2016-11-03 21:46:10 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description David Kaspar [Dee'Kej] 2015-10-20 11:05:54 EDT
+++ This bug was initially created as a clone of Bug #1219923 +++

Description of problem (quoting cloned bug description):
--------------------------------------------------------

This was reported to upstream:

"""
Hi,

An user reported a problem, that apparently happens for quite
some time.

The user reports that interrupting this command:

eval sleep 10

would keep history in tcsh-6.14.00, but not in tcsh-6.18.01.
Actually, I believe the history not being logged is due to
http://pkgs.fedoraproject.org/cgit/tcsh.git/tree/tcsh-6.18.00-history-file-locking.patch

and the problem is another, as the inconsistent state
happens in all tcsh versions. Basically, when doeval()
calls process(), process() does not leave, so one needs
to ^D twice to get back to the consistent state.

The attached patch correct this condition, and based
on code I could read is correct, but I would like some
feedback on it.

Thanks,
Paulo
"""

-----------------

Version-Release number of selected component (if applicable):
tcsh-6.18.01-8.el7.x86_64

How reproducible:
Always

Steps to Reproduce:
1. run 'tcsh'.
2. run command:
> eval sleep 10
3. press <Ctrl-C> during that time
4. press <Ctrl-D> to close the terminal

Actual results:
You have to press <Ctrl-D> once again to actually exit the terminal.

Expected results:
The 'tcsh' exits normally after first pressing of <Ctrl-D>.

--- Additional comment from Paulo Andrade on 2015-05-09 08:59:43 EDT ---

Update patch, as initially proposed patch would
break the shell (was exiting if pressing ^C),
while the idea was to just leave the inconsistent
state after ^C during eval.

--- Additional comment from Fridolín Pokorný on 2015-05-13 08:31:13 EDT ---

Thanks for the report and provided patch!

It looks OK to me and it sounds reasonable to merge this patch, no fail noted in upstream testsuite as well.

--- Additional comment from David Kaspar [Dee'Kej] on 2015-10-20 07:12:21 EDT ---

Here is the mailing list conversation mentioned in the comment #0:
http://mx.gw.com/pipermail/tcsh-bugs/2015-May/000925.html

--- Additional comment from David Kaspar [Dee'Kej] on 2015-10-20 07:22:03 EDT ---

The conversation in the mailing list might be misleading to somebody - it might look like the patch was not accepted:

> And removed. This breaks the shell completely; a ^C makes it exit.
>
> christos

However, will small tweak, the patch was accepted by the upstream:
https://github.com/tcsh-org/tcsh/commit/5376dd911afa817a802aa736a69b3c0546b2b188
Comment 6 errata-xmlrpc 2016-11-03 21:46:10 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2260.html

Note You need to log in before you can comment on or make changes to this bug.