[Python-modules-team] Bug#932183: libapache2-mod-wsgi-py3: sys.getfilesystemencoding() regression
Sebastian Rittau
srittau at rittau.biz
Tue Jul 16 12:40:53 BST 2019
Package: libapache2-mod-wsgi-py3
Version: 4.6.5-1
Severity: normal
Dear Maintainer,
apologies in advance if this gets reported twice.
Since upgrading from Debian 9 to Debian 10, our WSGI app starts
reporting UnicodeEncodeErrors when trying to access file names containing
umlauts. Consider the following file:
--------------
import os
import sys
def application(env, sr):
print(sys.getfilesystemencoding())
print(os.environ)
with open("/tmp/föo", "w"):
pass
sr("200 OK", [("Content-Type", "text/plain")])
return [b"Ok"]
--------------
This will log the following (snipping Apache log stuff):
--------------
ascii
environ({'APACHE_RUN_DIR': '/var/run/apache2', 'APACHE_PID_FILE':
'/var/run/apache2/apache2.pid', 'JOURNAL_STREAM': '9:3328729', 'PATH':
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
'INVOCATION_ID': '9002aec454134616ab90af90af7c3c79', 'APACHE_LOCK_DIR':
'/var/lock/apache2', 'LANG': 'de_DE.UTF-8', 'APACHE_RUN_USER':
'www-data', 'APACHE_RUN_GROUP': 'www-data', 'APACHE_LOG_DIR':
'/var/log/apache2', 'PWD': '/', 'LC_ALL': 'de_DE.UTF-8', 'HOME':
'/var/www'})
mod_wsgi (pid=851): Exception occurred processing WSGI script
'/srv/intranet.example.com/foo.wsgi'.
Traceback (most recent call last):
File "/srv/intranet.example.com/foo.wsgi", line 7, in application
with open("/tmp/f\xc3\xb6o", "w"):
UnicodeEncodeError: 'ascii' codec can't encode character '\\xf6' in
position 6: ordinal not in range(128)
--------------
As can be seen from the first line, sys.getfilesystemencoding() returns
ASCII, despite the environment variables LANG and LC_ALL being set
correctly. (de_DE.UTF-8 also exists as a locale.) This is the corresponding
config:
--------------
WSGIApplicationGroup intranet.example.com
WSGIDaemonProcess intranet.example.com display-name=%{GROUP}
lang='de_DE.UTF-8' locale='de_DE.UTF-8'
python-path=/usr/local/virtualenv/intranet/lib/python3.7/site-packages/
processes=8 threads=50
WSGIProcessGroup intranet.example.com
--------------
Potentially related to #872887.
-- System Information:
Debian Release: 10.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-5-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libapache2-mod-wsgi-py3 depends on:
ii apache2-bin [apache2-api-20120211] 2.4.38-3
ii libc6 2.28-10
ii libpython3.7 3.7.3-2
ii python3 3.7.3-1
libapache2-mod-wsgi-py3 recommends no packages.
libapache2-mod-wsgi-py3 suggests no packages.
-- no debconf information
More information about the Python-modules-team
mailing list