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 <lc...@us.ibm.com> - 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 -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp