Original issue 13 created by jaqx0r on 2008-08-01T21:02:29.000Z:
nsscache doesn't handle LDAP errors very gracefully at the moment.
For example, I made a typo in my group base dn, and instead of an error message that it was
incorrect I got this output:
CRITICAL:NSSCacheApp:Traceback (most recent call last):
CRITICAL:NSSCacheApp: File "/usr/bin/nsscache", line 33, in ?
return_value = app.Run(sys.argv[1:], os.environ)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/nss_cache/app.py", line 219,
in Run
retval = command_callable().Run(conf=conf, args=args)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/nss_cache/command.py",
line 228, in Run
force_lock=options.force_lock)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/nss_cache/command.py",
line 271, in UpdateMaps
retval = updater.UpdateFromSource(source, incremental=incremental, force_write=force_write)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/nss_cache/update.py", line
216, in UpdateFromSource
force_write, location=None)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/nss_cache/update.py", line
254, in UpdateCacheFromSource
location=location)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/nss_cache/sources/base.py",
line 117, in GetMap
return self.GetGroupMap(since)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-
packages/nss_cache/sources/ldapsource.py", line 236, in GetGroupMap
since=since)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-
packages/nss_cache/sources/ldapsource.py", line 423, in GetUpdates
for obj in source:
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-
packages/nss_cache/sources/ldapsource.py", line 183, in iter
timeout=self.conf['timelimit'])
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line
405, in result
res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line
409, in result2
res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,timeout)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line
415, in result3
rtype, rdata, rmsgid, serverctrls = self._ldap_call(self._l.result3,msgid,all,timeout)
CRITICAL:NSSCacheApp: File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 94,
in _ldap_call
result = func(args,*kwargs)
CRITICAL:NSSCacheApp:NO_SUCH_OBJECT: {'info': '', 'matched': 'dc=mycompany,dc=com', 'desc':
'No such object'}
Traceback (most recent call last):
File "/usr/bin/nsscache", line 33, in ?
return_value = app.Run(sys.argv[1:], os.environ)
File "/usr/lib64/python2.4/site-packages/nss_cache/app.py", line 219, in Run
retval = command_callable().Run(conf=conf, args=args)
File "/usr/lib64/python2.4/site-packages/nss_cache/command.py", line 228, in Run
force_lock=options.force_lock)
File "/usr/lib64/python2.4/site-packages/nss_cache/command.py", line 271, in UpdateMaps
retval = updater.UpdateFromSource(source, incremental=incremental, force_write=force_write)
File "/usr/lib64/python2.4/site-packages/nss_cache/update.py", line 216, in
UpdateFromSource
force_write, location=None)
File "/usr/lib64/python2.4/site-packages/nss_cache/update.py", line 254, in
UpdateCacheFromSource
location=location)
File "/usr/lib64/python2.4/site-packages/nss_cache/sources/base.py", line 117, in GetMap
return self.GetGroupMap(since)
File "/usr/lib64/python2.4/site-packages/nss_cache/sources/ldapsource.py", line 236, in
GetGroupMap
since=since)
File "/usr/lib64/python2.4/site-packages/nss_cache/sources/ldapsource.py", line 423, in
GetUpdates
for obj in source:
File "/usr/lib64/python2.4/site-packages/nss_cache/sources/ldapsource.py", line 183, in
iter
timeout=self.conf['timelimit'])
File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 405, in result
res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 409, in result2
res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,timeout)
File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 415, in result3
rtype, rdata, rmsgid, serverctrls = self._ldap_call(self._l.result3,msgid,all,timeout)
File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 94, in _ldap_call
result = func(args,*kwargs)
ldap.NO_SUCH_OBJECT: {'info': '', 'matched': 'dc=mycompany,dc=com', 'desc': 'No such object'}
It makes it quite difficult to ascertain what the problem is, especially since the problem was not
the dc=mycompany,dc=com but the fact that I had used ou=groups,dc=mycompany,dc=com
instead of cn=groups,dc=mycompany,dc=com.
It would be nice if it had a simple error message instead of a stack dump, and even nicer if it
identified which setting was incorrect.