Originally, I had:
$ cat /etc/passwd | head -n 1
root:x:0:0:root:/root:/bin/bash
$ echo ${PIPESTATUS[@]}
0 0
Ie, 'cat' exits success.
That is actually not true. that specific example of 'cat' would never
get a broken pipe signal as it would read all of /etc/passwd, write all
of /etc/passwd , head would read into buf, split lines, exit.
Better example:
$ cat /dev/zero | head -c 1 ; echo ${PIPESTATUS[@]}
141 0
Note that 141-128=13 and SIGPIPE==13
** Description changed:
$ ./tools/hook-image-id
http://cloud-images.ubuntu.com/releases/streams/v1/com.ubuntu.cloud:released:aws.json
| head
com.ubuntu.cloud:server:10.04:amd64 20130704 apne1pi ami-8326b382
com.ubuntu.cloud:server:10.04:amd64 20130704 usee1pe ami-8eadd0e7
com.ubuntu.cloud:server:10.04:amd64 20130704 usww1pi ami-848ba2c1
com.ubuntu.cloud:server:10.04:amd64 20130704 usww2pi ami-f19407c1
com.ubuntu.cloud:server:10.04:amd64 20130704 saee1pi ami-962c898b
com.ubuntu.cloud:server:10.04:amd64 20130704 saee1pe ami-bc2c89a1
com.ubuntu.cloud:server:10.04:amd64 20130704 apne1pe ami-2d21b42c
com.ubuntu.cloud:server:10.04:amd64 20130704 apse1pi ami-34713866
com.ubuntu.cloud:server:10.04:amd64 20130704 usee1pi ami-1ab3ce73
com.ubuntu.cloud:server:10.04:amd64 20130704 usww2pe ami-f19b08c1
Traceback (most recent call last):
- File "/usr/bin/sstream-sync", line 132, in <module>
- main()
- File "/usr/bin/sstream-sync", line 129, in main
- tmirror.sync(smirror.reader, cfg['path'])
- File "/usr/lib/python3/dist-packages/simplestreams/mirrors/__init__.py",
line 58, in sync
- return self.sync_products(reader, path, data, content)
- File "/usr/lib/python3/dist-packages/simplestreams/mirrors/__init__.py",
line 252, in sync_products
- self.insert_item(item, src, target, pgree, ipath_cs)
- File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
151, in insert_item
- ret = self.call_hook('insert_item', data=mdata, extra=extra)
- File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
196, in call_hook
- capture=capture, rcs=rcs)
- File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
211, in call_hook
- return run_command(mcommand, env=env, capture=capture, rcs=rcs)
- File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
272, in run_command
- raise subprocess.CalledProcessError(rc, cmd)
+ File "/usr/bin/sstream-sync", line 132, in <module>
+ main()
+ File "/usr/bin/sstream-sync", line 129, in main
+ tmirror.sync(smirror.reader, cfg['path'])
+ File "/usr/lib/python3/dist-packages/simplestreams/mirrors/__init__.py",
line 58, in sync
+ return self.sync_products(reader, path, data, content)
+ File "/usr/lib/python3/dist-packages/simplestreams/mirrors/__init__.py",
line 252, in sync_products
+ self.insert_item(item, src, target, pgree, ipath_cs)
+ File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
151, in insert_item
+ ret = self.call_hook('insert_item', data=mdata, extra=extra)
+ File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
196, in call_hook
+ capture=capture, rcs=rcs)
+ File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
211, in call_hook
+ return run_command(mcommand, env=env, capture=capture, rcs=rcs)
+ File
"/usr/lib/python3/dist-packages/simplestreams/mirrors/command_hook.py", line
272, in run_command
+ raise subprocess.CalledProcessError(rc, cmd)
subprocess.CalledProcessError: Command '['sh', '-c',
'./tools/hook-image-id']' returned non-zero exit status 141
Exception BrokenPipeError: BrokenPipeError(32, 'Broken pipe') in
<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'> ignored
-
- $ cat /etc/passwd | head -n 1
- root:x:0:0:root:/root:/bin/bash
- $ echo ${PIPESTATUS[@]}
- 0 0
-
- Ie, 'cat' exits success.
+ Example of 'cat'
+ $ cat /dev/zero | head -c 1 ; echo ${PIPESTATUS[@]}
+ 141 0
ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: simplestreams 0.1.0~bzr272-0ubuntu1
ProcVersionSignature: Ubuntu 3.10.0-5.15-generic 3.10.2
Uname: Linux 3.10.0-5-generic x86_64
ApportVersion: 2.11-0ubuntu1
Architecture: amd64
Date: Fri Aug 2 10:19:56 2013
EcryptfsInUse: Yes
InstallationDate: Installed on 2011-10-19 (653 days ago)
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MarkForUpload: True
PackageArchitecture: all
SourcePackage: simplestreams
UpgradeStatus: Upgraded to saucy on 2013-05-20 (74 days ago)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1207779
Title:
need to handle BrokenPipeError gracefully
To manage notifications about this bug go to:
https://bugs.launchpad.net/simplestreams/+bug/1207779/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs