Bug 1904646

Summary: "Broken pipe" warnings while installing new kernels via yum
Product: Red Hat Enterprise Linux 8 Reporter: Thomas Huth <thuth>
Component: dracutAssignee: Lukáš Nykrýn <lnykryn>
Status: CLOSED DUPLICATE QA Contact: qe-baseos-daemons
Severity: low Docs Contact:
Priority: medium    
Version: 8.4CC: dracut-maint-list, dtardon, hannsj_uhl, smitterl
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.4   
Hardware: s390x   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-12-07 08:40:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Thomas Huth 2020-12-05 08:19:52 UTC
Description of problem:
While installing a new kernel with "yum install" or "yum update", there are some "Broken Pipe" warnings from gzip and sort while dracut runs. They are likely harmless, since the kernel works afterwards anyway, but still this can be confusing for the user and should be avoided

Version-Release number of selected component (if applicable):
dracut-049-95.git20200804.el8.s390x
(also happens with dracut-049-100, but that causes other trouble, see BZ 1904642)

How reproducible:
100%

Steps to Reproduce:
1. Install a new kernel with "yum install" or "yum update"

Actual results:
 gzip: stdout: Broken pipe
 gzip: stdout: Broken pipe
 sort: write failed: 'standard output': Broken pipe
 sort: write error

Expected results:
No scary error messages.

Additional info:
The problem seems only to happen during installation with yum. If I re-generate an initramfs manually by calling dracut directly, the error messages do not occur!

I've also added some debug echo statements to /usr/bin/dracut to locate the origin of the error messages, and if I've got that right, they seem to be generated by this part of the script:

if (( maxloglvl >= 5 )) && (( verbosity_mod_l >= 0 )); then
    if [[ $allowlocal ]]; then
        "$dracutbasedir/lsinitrd.sh" "${DRACUT_TMPDIR}/initramfs.img"| ddebug
    else
        lsinitrd "${DRACUT_TMPDIR}/initramfs.img"| ddebug
    fi
fi

Comment 1 Thomas Huth 2020-12-05 08:24:32 UTC
FWIW, here's the complete output of the "yum install":

Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Last metadata expiration check: 0:13:32 ago on 2020-12-05T02:51:56 EST.
kernel-4.18.0-258.el8.s390x.rpm                                                                  29 MB/s | 5.0 MB     00:00    
kernel-core-4.18.0-258.el8.s390x.rpm                                                             66 MB/s |  22 MB     00:00    
kernel-modules-4.18.0-258.el8.s390x.rpm                                                          34 MB/s | 6.3 MB     00:00    
Dependencies resolved.
================================================================================================================================
 Package                          Architecture            Version                          Repository                      Size
================================================================================================================================
Installing:
 kernel                           s390x                   4.18.0-258.el8                   @commandline                   5.0 M
 kernel-core                      s390x                   4.18.0-258.el8                   @commandline                    22 M
 kernel-modules                   s390x                   4.18.0-258.el8                   @commandline                   6.3 M

Transaction Summary
================================================================================================================================
Install  3 Packages

Total size: 33 M
Installed size: 49 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                        1/1 
  Installing       : kernel-core-4.18.0-258.el8.s390x                                                                       1/3 
  Running scriptlet: kernel-core-4.18.0-258.el8.s390x                                                                       1/3 
  Installing       : kernel-modules-4.18.0-258.el8.s390x                                                                    2/3 
  Running scriptlet: kernel-modules-4.18.0-258.el8.s390x                                                                    2/3 
  Installing       : kernel-4.18.0-258.el8.s390x                                                                            3/3 
  Running scriptlet: kernel-core-4.18.0-258.el8.s390x                                                                       3/3 

gzip: stdout: Broken pipe

gzip: stdout: Broken pipe
sort: write failed: 'standard output': Broken pipe
sort: write error

  Running scriptlet: kernel-4.18.0-258.el8.s390x                                                                            3/3 
  Verifying        : kernel-4.18.0-258.el8.s390x                                                                            1/3 
  Verifying        : kernel-core-4.18.0-258.el8.s390x                                                                       2/3 
  Verifying        : kernel-modules-4.18.0-258.el8.s390x                                                                    3/3 
Installed products updated.

Installed:
  kernel-4.18.0-258.el8.s390x           kernel-core-4.18.0-258.el8.s390x           kernel-modules-4.18.0-258.el8.s390x          

Complete!

Comment 2 David Tardon 2020-12-07 08:40:05 UTC

*** This bug has been marked as a duplicate of bug 1904066 ***