Univention Bugzilla – Bug 53975
searching for umlauts leads to traceback
Last modified: 2022-03-25 10:20:23 CET
Created attachment 10846 [details] umlaut-search searching for umlauts leads to traceback univention-app info UCS: 5.0-0 errata127 Installed: ucsschool=5.0 b3 4.4/ucsschool-veyon-proxy=1.1 Upgradable: ucr get server/role domaincontroller_master tested in single+ multi-server-env The traceback happened in the umc user module when searching für groups like schüler -> but also in the umc groups and umc computers module with slighly different traceback (e.g. mac in the computers module) -> this bug did not happen on my single-server univention-app info UCS: 4.4-8 errata1069 Installed: cups=2.2.1 samba4=4.10 squid=3.5 ucsschool=4.4 v9 ucsschool-kelvin-rest-api=1.5.1 ucsschool-veyon-proxy=1.1
Interner Server-Fehler in "udm/syntax/choices (navigation)". Request: udm/syntax/choices (navigation) Traceback (most recent call last): File "/usr/lib/python3/dist-packages/notifier/threads.py", line 80, in _run result = self._function() File "/usr/lib/python3/dist-packages/notifier/__init__.py", line 105, in __call__ return self._function(*tmp, **self._kwargs) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 101, in _decorated return method(*args, **kwargs) File "/usr/lib/python3/dist-packages/univention/management/console/ldap.py", line 152, in _decorated result = func(*args, **kwargs) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/__init__.py", line 992, in _thread return read_syntax_choices(syntax, request.options, ldap_connection=ldap_connection, ldap_position=ldap_position) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 1443, in read_syntax_choices keys = module.search(**search_options) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 702, in search UDM_Error(e).reraise() File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 365, in reraise six.reraise(self.__class__, self, self.exc_info[2]) File "/usr/lib/python3/dist-packages/six.py", line 692, in reraise raise value.with_traceback(tb) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 671, in search lookup_filter = self.lookup_filter(filter, ldap_connection) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 446, in lookup_filter return getattr(self.module, 'lookup_filter')(filter_s, lo) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1804, in lookup_filter filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 124, in append_unmapped_filter_string walk(filter_p, rewrite_function, arg=mapping) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 308, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 308, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 308, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 313, in walk expression_walk_function(filter_p, arg) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1867, in rewrite_filter filter.value = mapping.mapValueDecoded(key, filter.value) File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 559, in mapValueDecoded value = self.mapValue(map_name, value) File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 555, in mapValue raise univention.admin.uexceptions.valueInvalidSyntax(_('Invalid encoding for %s') % (map_name,)) univention.management.console.modules.udm.udm_ldap.UDM_Error: Falsche Syntax. Ungültige Kodierung für mailAddress
also noticed by participant during 2021-11 training
Version: 5.0-1 errata174 Error: Internal server error during "udm/query (groups/group)". Request: udm/query (groups/group) Traceback (most recent call last): File "%PY3%/notifier/threads.py", line 80, in _run result = self._function() File "%PY3%/notifier/__init__.py", line 105, in __call__ return self._function(*tmp, **self._kwargs) File "%PY3%/univention/management/console/modules/udm/__init__.py", line 607, in _thread result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden) File "%PY3%/univention/management/console/modules/udm/udm_ldap.py", line 702, in search UDM_Error(e).reraise() File "%PY3%/univention/management/console/modules/udm/udm_ldap.py", line 365, in reraise six.reraise(self.__class__, self, self.exc_info[2]) File "%PY3%/six.py", line 692, in reraise raise value.with_traceback(tb) File "%PY3%/univention/management/console/modules/udm/udm_ldap.py", line 685, in search result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit, **kwargs) File "%PY3%/univention/admin/handlers/__init__.py", line 1773, in lookup filter_s = cls.lookup_filter(filter_s, lo) File "%PY3%/univention/admin/handlers/__init__.py", line 1804, in lookup_filter filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping) File "%PY3%/univention/admin/filter.py", line 124, in append_unmapped_filter_string walk(filter_p, rewrite_function, arg=mapping) File "%PY3%/univention/admin/filter.py", line 308, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "%PY3%/univention/admin/filter.py", line 308, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "%PY3%/univention/admin/filter.py", line 313, in walk expression_walk_function(filter_p, arg) File "%PY3%/univention/admin/handlers/__init__.py", line 1867, in rewrite_filter filter.value = mapping.mapValueDecoded(key, filter.value) File "%PY3%/univention/admin/mapping.py", line 559, in mapValueDecoded value = self.mapValue(map_name, value) File "%PY3%/univention/admin/mapping.py", line 555, in mapValue raise univention.admin.uexceptions.valueInvalidSyntax(_('Invalid encoding for %s') % (map_name,)) univention.management.console.modules.udm.udm_ldap.UDM_Error: Invalid syntax. Invalid encoding for mailAddress Role: domaincontroller_master
comparable error noticed during training 2022-02 when searching in computers for "winß". 5.0-1 errata218
Patch in: https://git.knut.univention.de/univention/ucs/-/merge_requests/282
A search for userexpiry=$date is now possible. univention-directory-manager-modules.yaml 24c8e75bc284 | Bug #53975: Merge branch 'fbest/53975-ignore-encoding-in-ldap-filter' into 5.0-1 0e4f7029bdfb | Bug #53975: ignore decoding errors when building filter from arbitrary values univention-directory-manager-modules (15.0.11-35) 24c8e75bc284 | Bug #53975: Merge branch 'fbest/53975-ignore-encoding-in-ldap-filter' into 5.0-1 0e4f7029bdfb | Bug #53975: ignore decoding errors when building filter from arbitrary values
(In reply to Florian Best from comment #7) > A search for userexpiry=$date is now possible. err, I meant: a search containing umlauts works again.
There are special cases for ipmanagedclient filter rewriting which lead me to also do the behavior in mapRewrite(). univention-directory-manager-modules (15.0.11-36) 4a504a91f948 | Bug #53975: ignore UnicodeDecodeError also in mapRewrite() used to built up LDAP filters via rewriting
Functionality tested: - created computer object named 'winß' - searched in computers for 'winß' OK code review OK yaml, changelog OK
<https://errata.software-univention.de/#/?erratum=5.0x259>
*** Bug 53695 has been marked as a duplicate of this bug. ***