Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1427500 - util-linux: script does not retry on EINTR when logging command output
util-linux: script does not retry on EINTR when logging command output
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: util-linux (Show other bugs)
7.3
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Karel Zak
Radka Skvarilova
:
Depends On:
Blocks: 1465901 1472751
  Show dependency treegraph
 
Reported: 2017-02-28 07:15 EST by Florian Weimer
Modified: 2018-04-10 13:26 EDT (History)
2 users (show)

See Also:
Fixed In Version: util-linux-2.23.2-44.el7
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-04-10 13:25:50 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)


External Trackers
Tracker ID Priority Status Summary Last Updated
Sourceware 21004 None None None 2017-02-28 07:15 EST
Red Hat Product Errata RHBA-2018:0936 None None None 2018-04-10 13:26 EDT

  None (edit)
Description Florian Weimer 2017-02-28 07:15:18 EST
Description of problem:

When logging command output, script fails if the underlying write system call fails with EINTR.

This is peripherally related to this glibc upstream bug:

  https://sourceware.org/bugzilla/show_bug.cgi?id=21004

But as noted in this bug, I'm not convinced we should change the behavior within glibc.

This should be fixed by switching to a direct write system call with an EINTR retry loop, or installing the signal handler with SA_RESTART.

Version-Release number of selected component (if applicable):

util-linux-2.23.2-33.el7.x86_64

How reproducible:

Rarely.

Steps to Reproduce:
1. Run script to capture output from a long-running process under screen.
2. Detach the screen and reattach it with a different terminal size.

Actual results:

script exits with: “script: write failed: Interrupted system call”.  Any pending data is discarded.

Expected results:

script continues to run.
Comment 1 Karel Zak 2017-02-28 08:56:16 EST
That's right, the current upstream uses write_all()
https://github.com/karelzak/util-linux/blob/master/include/all-io.h. These issue should be already fixed on Fedora.

Do you think the problem is important enough to backport the change to RHEL7? (I'm not sure:-)
Comment 2 Florian Weimer 2017-02-28 09:04:17 EST
(In reply to Karel Zak from comment #1)
> That's right, the current upstream uses write_all()
> https://github.com/karelzak/util-linux/blob/master/include/all-io.h. These
> issue should be already fixed on Fedora.
> 
> Do you think the problem is important enough to backport the change to
> RHEL7? (I'm not sure:-)

Is there any other tool which can be used to capture output from a terminal?  Maybe I could use screen itself or tmux.

I need this for glibc testing, to capture full crash output (including backtraces).  If there is no other option, I would appreciate a fixed script program.
Comment 3 Karel Zak 2017-02-28 09:12:46 EST
I don't want to force you to use something else, just asking how important it is.
Comment 11 errata-xmlrpc 2018-04-10 13:25:50 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://access.redhat.com/errata/RHBA-2018:0936

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