Univention Bugzilla – Full Text Bug Listing |
Summary: | Encoding-Traceback in UCR wenn nicht UTF-8 Zeichen in base.conf stehen | ||
---|---|---|---|
Product: | UCS | Reporter: | Andre Fenske <fenske> |
Component: | UCS Installer | Assignee: | Janek Walkenhorst <walkenhorst> |
Status: | CLOSED WORKSFORME | QA Contact: | Felix Botner <botner> |
Severity: | normal | ||
Priority: | P5 | CC: | a.burkert, botner, gohmann, scherer, schwardt, walkenhorst |
Version: | UCS 2.3 | ||
Target Milestone: | UCS 3.0 - RC | ||
Hardware: | Other | ||
OS: | Linux | ||
What kind of report is it?: | --- | What type of bug is this?: | --- |
Who will be affected by this bug?: | --- | How will those affected feel about the bug?: | --- |
User Pain: | Enterprise Customer affected?: | ||
School Customer affected?: | ISV affected?: | ||
Waiting Support: | Flags outvoted (downgraded) after PO Review: | ||
Ticket number: | Bug group (optional): | ||
Max CVSS v3 score: | |||
Bug Depends on: | |||
Bug Blocks: | 18006, 18101 | ||
Attachments: | Force utf-8 encoding |
Description
Andre Fenske
2009-11-30 14:25:16 CET
Während der Installation wurde bei den SSL-Zertifikatsangaben eine Angabe mit Umlaut gemacht. Da der Installer mit Latin-1-Encoding läuft, wurde dies wohl auch in diesem Encoding in die base.conf geschrieben. UCR hat beim Auslesen der base.conf keine Probleme mit Umlauten. Allerdings beim Ändern einer UCR-Variable wird über ein return '\n'.join(['%s: %s' % (key, self.removeInvalidChars (val)) for key, val in self.items()]) die neue base.conf zusammengebaut. Enthält val ein Latin-1-Zeichen führt dies zu obigem Traceback. Konkreter Auslöser (in Latin-1 kodiert): ssl/locality: löjlk Neben dem UMC Modul für die Einrichtung des Ad-Connectors wirkt sich dieser Bug auf das UMC Modul "Univention Configuration Registry" aus. Bei einer Suche über die Kategorien "Alle", "Alle (inkl. nicht registrierter)" und "System: Zertifikatsverwaltung" tritt folgende Fehlermeldung auf: Traceback (most recent call last): File "/usr/share/univention-webui/modules/requests.py", line 462, in startRequest xmltext=xmlout.toxml() File "/usr/lib/python2.4/site-packages/_xmlplus/dom/minidom.py", line 47, in toxml return self.toprettyxml("", "", encoding) File "/usr/lib/python2.4/site-packages/_xmlplus/dom/minidom.py", line 62, in toprettyxml return writer.getvalue() File "/usr/lib/python2.4/StringIO.py", line 271, in getvalue self.buf += ''.join(self.buflist) File "/usr/lib/python2.4/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 20-23: unexpected end of data (In reply to comment #2) > Neben dem UMC Modul für die Einrichtung des Ad-Connectors wirkt sich dieser Bug > auf das UMC Modul "Univention Configuration Registry" aus. Bei einer Suche über > die Kategorien "Alle", "Alle (inkl. nicht registrierter)" und "System: > Zertifikatsverwaltung" tritt folgende Fehlermeldung auf: > > Traceback (most recent call last): > File "/usr/share/univention-webui/modules/requests.py", line 462, in > startRequest xmltext=xmlout.toxml() > File "/usr/lib/python2.4/site-packages/_xmlplus/dom/minidom.py", line 47, in > toxml return self.toprettyxml("", "", encoding) > File "/usr/lib/python2.4/site-packages/_xmlplus/dom/minidom.py", line 62, in > toprettyxml return writer.getvalue() > File "/usr/lib/python2.4/StringIO.py", line 271, in getvalue self.buf += > ''.join(self.buflist) > File "/usr/lib/python2.4/encodings/utf_8.py", line 16, in decode return > codecs.utf_8_decode(input, errors, True) > UnicodeDecodeError: 'utf8' codec can't decode bytes in position 20-23: > unexpected end of data Existiert dieses System noch in dem gleichen Zustand? Wenn ja, können Sie einmal prüfen, ob sich in den Dateien unterhalb von /etc/univention/registry.info/ Dateien mit Umlauten befinden, die nicht in UTF-8 kodiert sind? Wahrscheinlich wird dieser Traceback dadurch ausgelöst. Das Problem aus Comment 0 ist jetzt behoben. Es wird dafür gesorgt, dass nur UTF-8 Werte in die Dateien geschrieben und gelesen werden. Das Problem aus Comment 2 bezieht sich wahrscheinlich auf die Info-Dateien und hat damit einen anderen Ursprung. Ich bin mir nicht sicher, ob das der richtige Bug ist. Aus der updater.log von einem Update auf UCS 2.3-2: Setting up univention-windows-installer (3.0.1-2.64.201003150943) ... Installing new version of config file /etc/univention/templates/info/univention-windows-installer.info ... File: /var/lib/univention-windows-installer/install/lib/unattend.txt File: /var/lib/univention-windows-installer/install/site/unattend.txt Traceback (most recent call last): File "/usr/sbin/univention-config-registry", line 40, in ? ub.main(sys.argv[1:]) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 1457, in main handlers[ action ][ 0 ]( args, cmd_opts ) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 973, in handler_register c.register(args[0], b) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 748, in register object((bc, d)) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 505, in __call__ to_fp.write(filter(from_fp.read(), bc, srcfiles = [self.from_file], opts = filter_opts)) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 355, in filter template = template[:start.start()]+value+template[end.end():] File "/usr/lib/python2.4/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 255-260: unsupported Unicode code range Create windowsinstaller/perl/msi Es gibt noch eine zusätzliche Meldung: Setting up univention-directory-manager (7.0.52-1.248.201003090948) ... Installing new version of config file /etc/univention/templates/files/etc/cron.d/univention-directory-reports-cleanup ... Multifile: /etc/hosts File: /usr/share/univention-directory-manager/www/config.php File: /etc/apache2/sites-available/univention-directory-manager Multifile: /var/www/ucs-overview/de.html Traceback (most recent call last): File "/usr/sbin/univention-config-registry", line 40, in ? ub.main(sys.argv[1:]) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 1457, in main handlers[ action ][ 0 ]( args, cmd_opts ) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 973, in handler_register c.register(args[0], b) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 748, in register object((bc, d)) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 455, in __call__ to_fp.write(filter(from_fp.read(), bc, srcfiles = self.from_files, opts = filter_opts)) File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 355, in filter template = template[:start.start()]+value+template[end.end():] File "/usr/lib/python2.4/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 256-261: unsupported Unicode code range Zu Comment 5 und Comment 6: Steht wahrscheinlich mit Bug #18019 in Zusammenhang. Es scheint noch Templates zu eben, die ISO-8859-* kodiert sind. Es könnte sein, dass das erst jetzt mit der explizites Kodierung der UCR-Werte nach UTF-8 auffällt. Frage ist, ob wir die "falschen" Templates korrigieren wollen oder die Änderung erst einmal wieder zurücknehmen wollen? (In reply to comment #7) > Zu Comment 5 und Comment 6: Steht wahrscheinlich mit Bug #18019 in > Zusammenhang. Es scheint noch Templates zu eben, die ISO-8859-* kodiert sind. > Es könnte sein, dass das erst jetzt mit der explizites Kodierung der UCR-Werte > nach UTF-8 auffällt. Frage ist, ob wir die "falschen" Templates korrigieren > wollen oder die Änderung erst einmal wieder zurücknehmen wollen? Nein, das geht nicht, da wir die Schnittstellen in einem Patchlevel-Release nicht ändern können. Wir schieben diese Änderung auf 3.0, da sonst die Schnittstellen geändert werden. Created attachment 2379 [details]
Force utf-8 encoding
Dieser Patch wurde erst einmal wieder aus dem SVN entfernt.
*** Bug 17956 has been marked as a duplicate of this bug. *** erneut berichtet im Forum: http://forum.univention.de/viewtopic.php?f=48&t=1525&p=5175#p5175 (In reply to comment #4) > Das Problem aus Comment 0 ist jetzt behoben. Es wird dafür gesorgt, dass nur > UTF-8 Werte in die Dateien geschrieben und gelesen werden. Dies wurde mit Bug #18006 > > Das Problem aus Comment 2 bezieht sich wahrscheinlich auf die Info-Dateien und > hat damit einen anderen Ursprung. Damit verbleibt dieses Problem für diesen Bug. Bitte prüfen, ob hier noch etwas offen ist. (In reply to comment #13) > > Das Problem aus Comment 2 bezieht sich wahrscheinlich auf die Info-Dateien und > > hat damit einen anderen Ursprung. > Damit verbleibt dieses Problem für diesen Bug. Es gibt in UCS 3.0 keine nicht-UTF-8 Templates oder Quellcode-Dateien mehr, daher sollte das Problem nicht mehr auftreten. (In reply to comment #15) > (In reply to comment #13) > > > Das Problem aus Comment 2 bezieht sich wahrscheinlich auf die Info-Dateien und > > > hat damit einen anderen Ursprung. > > Damit verbleibt dieses Problem für diesen Bug. > Es gibt in UCS 3.0 keine nicht-UTF-8 Templates oder Quellcode-Dateien mehr, > daher sollte das Problem nicht mehr auftreten. UMC - OUTSOURCED Es gibt noch ein Problem mit UMC UCR, dies wird aber an Bug #24440 behandelt. Non-UTF-8 in Templates - OK Scheint auch kein Problem mehr zu sein # iso latin -> echo "äöä" >> /etc/univention/templates/files/var/www/ucs-overview/de.html.d/50nagios-de.html -> ucr commit /var/www/ucs-overview/de.html Multifile: /var/www/ucs-overview/de.html # utf8 -> echo "äöüöüüö" >> /etc/univention/templates/files/var/www/ucs-overview/de.html.d/50nagios-de.html -> ucr commit /var/www/ucs-overview/de.html Multifile: /var/www/ucs-overview/de.html UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug" |