Bug 54163 - passwordreset/get_reset_methods: RuntimeError: maximum recursion depth exceeded
passwordreset/get_reset_methods: RuntimeError: maximum recursion depth exceeded
Status: NEW
Product: UCS
Classification: Unclassified
Component: UMC - Change password
UCS 4.4
Other Linux
: P5 normal (vote)
: ---
Assigned To: UMC maintainers
UMC maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2021-11-26 15:49 CET by Maximilian Janßen
Modified: 2021-11-26 15:49 CET (History)
0 users

See Also:
What kind of report is it?: Bug Report
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: 2021022621000306
Bug group (optional): Error handling, External feedback
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maximilian Janßen univentionstaff 2021-11-26 15:49:16 CET
Version: 4.4-7 errata901 (Blumenthal)

Remark: still broken

Error: 
Internal server error during "passwordreset/get_reset_methods".
Request: passwordreset/get_reset_methods

Traceback (most recent call last):
  File "%PY2.7%/univention/management/console/base.py", line 359, in __error_handling
    six.reraise(etype, exc, etraceback)
  File "%PY2.7%/univention/management/console/base.py", line 262, in execute
    function.__func__(self, request, *args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 102, in _decorator
    return func(self, request, *args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 185, in _decorated
    return func(self, *args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 181, in _response
    return function(self, request)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 321, in _response
    result = _multi_response(self, request)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 181, in _response
    return function(self, request)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 443, in _response
    return list(function(self, iterator, *nones))
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 289, in _fake_func
    yield function(self, *args)
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 903, in get_reset_methods
    if self.is_blacklisted(username, 'passwordreset'):
  File "%PY2.7%/univention/management/console/ldap.py", line 152, in _decorated
    result = func(*args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 1124, in is_blacklisted
    groups_dns.extend(self.get_nested_groups(group_dn))
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 1163, in get_nested_groups
    res.extend(self.get_nested_groups(ng))
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 1163, in get_nested_groups
    res.extend(self.get_nested_groups(ng))
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 1163, in get_nested_groups
    res.extend(self.get_nested_groups(ng))

[repeats about 80 times (guess)]

  File "%PY2.7%/univention/management/console/ldap.py", line 152, in _decorated
    result = func(*args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/passwordreset/__init__.py", line 1197, in get_udm_group
    group = self.groupmod.object(None, ldap_connection, ldap_position, groupdn)
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 230, in __init__
    self.oldattr = self.lo.get(self.dn, attr=attr, required=True)
  File "%PY2.7%/univention/admin/uldap.py", line 710, in get
    return self.lo.get(dn, attr, required)
  File "%PY2.7%/univention/uldap.py", line 207, in _decorated
    return func(self, *args, **kwargs)
  File "%PY2.7%/univention/uldap.py", line 438, in get
    result = self.lo.search_s(dn, ldap.SCOPE_BASE, '(objectClass=*)', attr)
  File "%PY2.7%/ldap/ldapobject.py", line 597, in search_s
    return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
  File "%PY2.7%/ldap/ldapobject.py", line 993, in search_ext_s
    return self._apply_method_s(SimpleLDAPObject.search_ext_s,*args,**kwargs)
  File "%PY2.7%/ldap/ldapobject.py", line 931, in _apply_method_s
    return func(self,*args,**kwargs)
  File "%PY2.7%/ldap/ldapobject.py", line 591, in search_ext_s
    return self.result(msgid,all=1,timeout=timeout)[1]
  File "%PY2.7%/ldap/ldapobject.py", line 503, in result
    resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
  File "%PY2.7%/ldap/ldapobject.py", line 507, in result2
    resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout)
  File "%PY2.7%/ldap/ldapobject.py", line 514, in result3
    resp_ctrl_classes=resp_ctrl_classes
  File "%PY2.7%/ldap/ldapobject.py", line 521, in result4
    ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
  File "%PY2.7%/ldap/ldapobject.py", line 92, in _ldap_call
    self._ldap_object_lock.acquire()
RuntimeError: maximum recursion depth exceeded

Role: domaincontroller_master