Red Hat Bugzilla – Bug 1427500
util-linux: script does not retry on EINTR when logging command output
Last modified: 2018-04-10 13:26:58 EDT
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.
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:-)
(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.
I don't want to force you to use something else, just asking how important it is.
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