Univention Bugzilla – Bug 27255
Encoding-Probleme da LANG nicht gesetzt ist
Last modified: 2012-06-11 06:29:28 CEST
Über das Materialverteilungsprojekt sind Encoding-Probleme aufgefallen (siehe Traceback unten). Zwar wird über /etc/python2.6/sitecustomize.py utf8 als default-Encoding-Type angegeben, dies scheint aber ignoriert zu werden, da der encoding-Type für den Modulprozess ANSI_X3.4-1968 ist. Auch andere Änderungen von /usr/lib/python2.6/site.py bringen keine Veränderung. > Traceback (most recent call last): > File "/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py", line 102, in execute > func( request ) > File "/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/__init__.py", line 167, in query > and (filter == 'all' or i.sender.dn == self._user_dn) > File "/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/util.py", line 108, in __getattribute__ > object.__getattribute__(self, key) > File "/usr/lib/pymodules/python2.6/univention/management/console/modules/distribution/util.py", line 254, in isDistributed > files = [ ifn for ifn in self.files if os.path.exists(os.path.join(self.cachedir, ifn)) ] > File "/usr/lib/python2.6/genericpath.py", line 18, in exists > st = os.stat(path) > UnicodeEncodeError: 'ascii' codec can't encode characters in position 37-40: ordinal not in range(128)
Das Problem kann umgangen werden, wenn im UMC-Server bspw. die Default-Locale als LANG gesetzt wird. Diese gibt standardmäßig als Encoding-Type UTF-8 an: os.environ[ 'LANG' ] = default_locale
Bitte die Änderungen nach Bug 27256 übernehmen.
Der Fehler wurde behoben. QA: Bitte von einer alten Testumgebung aktualisieren (ggf. mit einer default-Locale ohne UTF-8/mit einer anderen Kodierung) und sicherstellen, dass die UDM-Lokalisierung korrekt funktioniert und keine sonstigen Probleme auftreten. univention-management-console (4.0.232-1) unstable; urgency=low . * set the environment variable LANG to locale/default; Bug #27255
Ein Folgefehler trat auf in dem Modul atjobs. atq liefert das Datum immer nicht lokalisiert zurück, strptime() berücksichtigt allerdings die derzeitige Lokalisierung. Dies schlägt fehl, wenn als default locale bspw. de_DE angegeben ist. > parsing failed: time data 'Sun May 27 09:30:00 2012' does not match format '%a %b %d %H:%M:%S %Y' > strftime() liefert zurück → "Do Mai 24 10:50:07 2012" > locale.getlocale() → ('de_DE', 'UTF8') > locale.getdefaultlocale() → ('de_DE', 'UTF8') Dies wurde insoweit angepasst, dass vor Aufruf von strptime() die locale für LC_TIME auf "C" gesetzt wird und nachher wieder auf ihren ursprünglichen Wert. univention-lib (1.0.52-1) unstable; urgency=low . * fixed locale problems when calling atq; Bug #27255
*** Bug 27252 has been marked as a duplicate of this bug. ***
Locale ist gesetzt. Ich habe noch kurz nach anderen subprocess.Popen aufrufen geschaut, ob dort ähnlich wie bei der atjobs Lib dadurch Probleme entstehen könnten, aber keiner der 18 Treffen scheint nach einer kurzen Durchsicht davon betroffen zu sein. ChagneLog existiert
UCS@school 3.0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS@school erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"