[lxc-devel] [lxc/lxc] c07826: Make lxc-start-ephemeral Python 3.2-compatible
GitHub
noreply at github.com
Fri Jan 27 21:19:52 UTC 2017
Branch: refs/heads/stable-2.0
Home: https://github.com/lxc/lxc
Commit: c078262cf8dc0c2b659d1fb26142995cc8d5ece1
https://github.com/lxc/lxc/commit/c078262cf8dc0c2b659d1fb26142995cc8d5ece1
Author: Colin Watson <cjwatson at ubuntu.com>
Date: 2017-01-27 (Fri, 27 Jan 2017)
Changed paths:
M src/lxc/tools/lxc-start-ephemeral.in
Log Message:
-----------
Make lxc-start-ephemeral Python 3.2-compatible
On Ubuntu 12.04 LTS with Python 3.2, `lxc-start-ephemeral` breaks as
follows:
Traceback (most recent call last):
File "/usr/bin/lxc-start-ephemeral", line 371, in attach_as_user
File "/usr/lib/python3.2/subprocess.py", line 515, in check_output
File "/usr/lib/python3.2/subprocess.py", line 732, in __init__
LookupError: unknown encoding: ANSI_X3.4-1968
This is because `universal_newlines=True` causes `subprocess` to use
`io.TextIOWrapper`, and in versions of Python earlier than 3.3 that
fetched the preferred encoding using `locale.getpreferredencoding()`
rather than `locale.getpreferredencoding(False)`, thereby changing the
locale and causing codecs to be reloaded. However, `attach_as_user`
runs inside the container and thus can't rely on having access to the
same Python standard library on disk.
The workaround is to decode by hand instead, avoiding the temporary
change of locale.
Signed-off-by: Colin Watson <cjwatson at ubuntu.com>
More information about the lxc-devel
mailing list