Univention Bugzilla – Full Text Bug Listing |
Summary: | Unable to search for dnsAlias in computers/* modules | ||
---|---|---|---|
Product: | UCS | Reporter: | Stefan Gohmann <gohmann> |
Component: | UMC - Computers | Assignee: | Florian Best <best> |
Status: | CLOSED FIXED | QA Contact: | Jannik Ahlers <ahlers> |
Severity: | normal | ||
Priority: | P5 | CC: | best, geerds |
Version: | UCS 4.2 | Flags: | best:
Patch_Available+
|
Target Milestone: | UCS 4.4-0-errata | ||
Hardware: | Other | ||
OS: | Linux | ||
See Also: | https://forge.univention.org/bugzilla/show_bug.cgi?id=40740 | ||
What kind of report is it?: | Bug Report | What type of bug is this?: | 3: Simply Wrong: The implementation doesn't match the docu |
Who will be affected by this bug?: | 1: Will affect a very few installed domains | How will those affected feel about the bug?: | 2: A Pain – users won’t like this once they notice it |
User Pain: | 0.034 | Enterprise Customer affected?: | |
School Customer affected?: | ISV affected?: | ||
Waiting Support: | Flags outvoted (downgraded) after PO Review: | ||
Ticket number: | 2017080421000372, 2017080421000381 | Bug group (optional): | Cleanup, Error handling, Usability |
Max CVSS v3 score: | |||
Attachments: | patch |
Description
Stefan Gohmann
2013-05-24 12:01:37 CEST
Created attachment 9092 [details]
patch
Attached patch fixes this and some more errors:
A filter like "(dnsAlias=foo,bar)" caused the following Traceback in UMC:
Execution of command 'udm/query computers/computer' has failed:
Traceback (most recent call last):
File "%PY2.7%/notifier/threads.py", line 82, in _run
tmp = self._function()
File "%PY2.7%/notifier/__init__.py", line 104, in __call__
return self._function( *tmp, **self._kwargs )
File "%PY2.7%/univention/management/console/modules/udm/__init__.py", line 563, in _thread
result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden)
File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 82, in _decorated
return method(*args, **kwargs)
File "%PY2.7%/univention/management/console/ldap.py", line 143, in _decorated
result = func(*args, **kwargs)
File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 484, in search
result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 682, in lookup
filter = lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
…
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 665, in lookup_filter
return lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 663, in lookup_filter
filter_s = univention.admin.handlers.dns.alias.lookup_alias_filter(lo, filter_s)
File "%PY2.7%/univention/admin/handlers/dns/alias.py", line 169, in lookup_alias_filter
_re = re.compile('(.*)\(dnsAlias=([^=,]+)\)(.*)')
File "/usr/lib/python2.7/re.py", line 194, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.7/re.py", line 235, in _compile
cachekey = (type(key[0]),) + key
RuntimeError: maximum recursion depth exceeded while calling a Python object
A filter like "(dnsAlias=)" caused the following Traceback in UMC:
Traceback (most recent call last):
File "%PY2.7%/notifier/threads.py", line 82, in _run
tmp = self._function()
File "%PY2.7%/notifier/__init__.py", line 104, in __call__
return self._function( *tmp, **self._kwargs )
File "%PY2.7%/univention/management/console/modules/udm/__init__.py", line 563, in _thread
result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden)
File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 84, in _decorated
return method(*args, **kwargs)
File "%PY2.7%/univention/management/console/ldap.py", line 143, in _decorated
result = func(*args, **kwargs)
File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 484, in search
result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 682, in lookup
filter = lookup_filter(filter_s, lo)
File "%PY2.7%/univention/admin/handlers/computers/domaincontroller_master.py", line 663, in lookup_filter
filter_s = univention.admin.handlers.dns.alias.lookup_alias_filter(lo, filter_s)
File "%PY2.7%/univention/admin/handlers/dns/alias.py", line 184, in lookup_alias_filter
for dn, attrs in lo.search(base=alias_base, scope='sub', filter=alias_filter_s, attr=['cNAMERecord']):
File "%PY2.7%/univention/admin/uldap.py", line 433, in search
raise univention.admin.uexceptions.ldapError('%s: %s' % (_err2str(msg), filter))
ldapError: Bad search filter: (&(objectClass=dNSZone)(!(relativeDomainName=@))(!(zoneName=*.in-addr.arpa))(CNAMERecord=*)(relativeDomainName=*)))
Reproduce: curl 'http://Administrator:univention@10.200.27.20/univention/command/udm/query' -H 'Content-Type: application/json' --data-binary '{"options":{"container":"all","hidden":false,"objectType":"computers/domaincontroller_master","objectProperty":"dnsAlias","objectPropertyValue":"*","fields":["name","description","labelObjectType","path"]},"flavor":"computers/computer"}' --compressed | python -m json.tool Search filters for every computer module has been repaired. dnsAlias=foo dnsAlias=foo,bar dnsAlias=* univention-directory-manager-modules (14.0.12-22) c731a44f110c | Bug #31494: fix filtering for dnsAlias=foo univention-directory-manager-modules.yaml d095962ccced | YAML Bug #31494 searching for dns aliases works for all computer modules: OK installation: OK yaml: OK One test case failed (60_umc/70_udm_network_functionality) and revealed a exception if instead of a string a univention.admin.filter.expression() is given to the function. this has been fixed: univention-directory-manager-modules (14.0.12-24) d375938de7d8 | Bug #31494: fix replacing of filter if it's not a string |