While investigating https://issues.kolab.org/show_bug.cgi?id=5368 I found this:
2016-04-05 14:23:43,414 pykolab.auth ERROR LDAP server unavailable: SERVER_DOWN({'desc': "Can't contact LDAP server"},) 2016-04-05 14:23:43,416 pykolab.auth ERROR Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/pykolab/auth/ldap/__init__.py", line 2917, in _search secondary_domains File "<string>", line 10, in <module> File "/usr/lib/python2.6/site-packages/pykolab/auth/ldap/__init__.py", line 2815, in _regular_search (_result_type, _result) = self.ldap.result(_search, False, 0) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 458, in result resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 462, in result2 resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 469, in result3 resp_ctrl_classes=resp_ctrl_classes File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 476, in result4 ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 99, in _ldap_call result = func(*args,**kwargs) SERVER_DOWN: {'desc': "Can't contact LDAP server"} 2016-04-05 14:23:43,416 pykolab.auth ERROR -- reconnecting in 10 seconds. 2016-04-05 14:23:53,425 pykolab.auth ERROR An error occured using _regular_search: INAPPROPRIATE_AUTH({'info': 'Anonymous access is not allowed.', 'desc': 'Inappropriate authentication'},) 2016-04-05 14:23:53,426 pykolab.auth ERROR Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/pykolab/auth/ldap/__init__.py", line 2917, in _search secondary_domains File "<string>", line 10, in <module> File "/usr/lib/python2.6/site-packages/pykolab/auth/ldap/__init__.py", line 2815, in _regular_search (_result_type, _result) = self.ldap.result(_search, False, 0) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 458, in result resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 462, in result2 resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 469, in result3 resp_ctrl_classes=resp_ctrl_classes File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 476, in result4 ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop) File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 99, in _ldap_call result = func(*args,**kwargs) INAPPROPRIATE_AUTH: {'info': 'Anonymous access is not allowed.', 'desc': 'Inappropriate authentication'}
For me it looks like reconnect() should call _bind() after connect() and this indeed fixes the issue, but I'm not sure it's the correct fix.