Hello, there is no need to continuously to reproduce this, as it is a standard python interpret feature to catch SIGPIPE, raise BrokenPipeError on interpreter exit, and print a message about it to stderr. It is an error condition in python's opinion, and it does say so.
In my opinion, this is not even a bug. Why does an extra message on stderr, causes any problems to you, and why are you calling/testing for ubuntu versions like that? Can you not redirect stderr to /dev/null, as recommended in https://bugs.launchpad.net/ubuntu/+source/lsb/+bug/1504127/comments/3 ? Note that as per https://bugs.launchpad.net/ubuntu/+source/lsb/+bug/1504127/comments/3 there is no work ongoing to resolve the reported issue. Could you please explain which software package invocates commands like that and what the goal is? checking /proc/version is not that useful, because it only says which kernel is currently running which may not match userspace (e.g. Debian lxd container on Ubuntu kernel is not Ubuntu, or Ubuntu container on a foreign kernel is). If parsing /etc/os-release was enough, why do you still (pointlessly) invoke a python interpreter to parse lsb_release? lsb_release is deprecated, and imho /usr/lib/os-release should be preferred. Legacy release might only have /etc/os-release or just /etc/lsb-release. I would avoid all forks all together: $ grep -iq Ubuntu /etc/os-release /usr/lib/os-release /etc/lsb-release Please change your code to detect Ubuntu as per ^ for example. Or otherwise the caller that closes stdout of lsb_release, should also redirect stderr if said caller doesn't want to tolerate it, e.g.: $ ( cat /etc/os-release /proc/version; lsb_release -is 2>/dev/null) | grep -iq Ubuntu ** Changed in: lsb (Ubuntu) Status: Triaged => Invalid -- 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: Invalid Bug description: == Comment: #0 - Liang Chang Guo <[email protected]> - 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 : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

