← Back to team overview

touch-packages team mailing list archive

[Bug 1504127] Re: grep -q gets broken pipe message with multiple expressions

 

This is not a bug in bash; it is acceptable for the receiving end of the
stdout pipe to be closed by grep once grep has found a match and exited.
It is a bug in the lsb-release command, which should not throw an
exception when stdout is closed.

Confirming this as a genuine bug, but declining it for Canonical to work
on as there is a straightforward workaround (redirecting stderr to
/dev/null to suppress the exception message).

** Package changed: bash (Ubuntu) => lsb (Ubuntu)

** Changed in: lsb (Ubuntu)
   Importance: Undecided => Low

** Changed in: lsb (Ubuntu)
       Status: Confirmed => Triaged

** Changed in: lsb (Ubuntu)
     Assignee: Taco Screen team (taco-screen-team) => (unassigned)

** Summary changed:

- grep -q gets broken pipe message with multiple expressions
+ lsb_release throws exception if stdout is closed

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to lsb in Ubuntu.
https://bugs.launchpad.net/bugs/1504127

Title:
  lsb_release throws exception if stdout is closed

Status in lsb package in Ubuntu:
  Triaged

Bug description:
  == Comment: #0 - Liang Chang Guo <lcguo@xxxxxxxxxx> - 2015-10-06 20:43:30 ==
  For testing if a system is Ubuntu, the following combined command with bash always gets extra BrokenPipeError on Ubuntu (14.04 to 15.10):

  # ( cat /etc/os-release /proc/version; lsb_release -is ) | grep -iq Ubuntu 
  Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
  BrokenPipeError: [Errno 32] Broken pipe

  While the return code is correct:
  # ( cat /etc/os-release /proc/version; lsb_release -is ) | grep -iq Ubuntu && echo It-is-Ubuntu
  Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
  BrokenPipeError: [Errno 32] Broken pipe
  It-is-Ubuntu

  It may work well if with slight changes for the command:
  # ( cat /etc/os-release /proc/version; lsb_release -is ) | grep -i Ubuntu
  NAME="Ubuntu"
  ... ...
  # ( cat /etc/os-release /proc/version; lsb_release -is ) | grep -iq UbuntuW
  # ( cat /etc/os-release /proc/version; sleep 1; echo =; lsb_release -is ) | grep -iq Ubuntu
  # cat /etc/os-release /proc/version | grep -iq Ubuntu
  # (lsb_release -is) | grep -iq Ubuntu

  *** Ubuntu Platform Info ***
  # uname -a
  Linux ubt1510J2 4.2.0-12-generic #14-Ubuntu SMP Mon Sep 28 16:50:34 UTC 2015 ppc64le ppc64le ppc64le GNU/Linux

  # dpkg -l bash grep
  ||/ Name                              Version               Architecture          Description
  +++-=================================-=====================-=====================-=========================
  ii  bash                              4.3-14ubuntu1         ppc64el               GNU Bourne Again SHell
  ii  grep                              2.21-2                ppc64el               GNU grep, egrep and fgrep

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/lsb/+bug/1504127/+subscriptions