Univention Bugzilla – Bug 23601
Fehlertolleranteres Verhalten für univention-sync-memberuid
Last modified: 2012-07-20 15:24:08 CEST
Created attachment 3515 [details] Exceptions beim Suchen nach Objekten abfangen Aktuell wird ein Traceback geworfen, wenn an einer Gruppe ein uniqueMember eingetragen ist, der im LDAP nicht mehr existiert (siehe auch Ticket#: 2011090910002784). Mit dem angehängten Patch wird eine Fehlermeldung auf der Kommandozeile und in /var/log/univention/sync-memberuid.log ausgegeben.
Patch wurde übernommen; Paket wurde gebaut; Changelogeintrag wurde erstellt univention-directory-manager-modules (7.0.273-1) unstable; urgency=low
OK: ChangeLog svn13815, svn13936 OK: /usr/share/univention-directory-manager-tools/univention-sync-memberuid aus univention-directory-manager-tools_7.0.228-1.780.201204021447 zeigt den Traceback OK: korrigiert das ohne Traceback. V: svn34009, univention-directory-manager-tools_7.0.285-1.852.201207121530 Allerdings ist die Fehlermeldung irreführend: - except Exception, e: - ud.debug( ud.ADMIN, ud.ERROR, 'reading uid of %s failed: %s' % (uniqueMember, str(e)) ) - print 'ERROR: cannot read uid of DN %s' % uniqueMember + except ldap.NO_SUCH_OBJECT, ex: + ud.debug(ud.ADMIN, ud.WARN, 'searching %s failed: %s' % (uniqueMember, ex)) + print >> sys.stderr, 'WARNING: DN %s not found' % uniqueMember 1. Hier ist nicht das Lesen der UID fehlgeschlagen, sondern unter der DN gibt es kein Objekt. 2. "Exception" ist IMHO zu allgemein, besser wäre "ldap.NO_SUCH_OBJECT" oder wenigstens "ldap.LDAPError", die Überklasse aller LDAP-Exceptions 3. Unter "ud.ERROR" erwarte ich eigentlich einen so schweren Fehler, daß das Programm nicht sinnvoll weitermachen kann. Hier wird aber gerade ein "continue" gemacht, von daher würde ich WARN vorschlagen. (Oder brauchen wir ein ud.FATAL?) 4. Und Fehlermeldungen gehören nach stderr.
Created attachment 4533 [details] Test plan
Created attachment 4534 [details] Future cleanup
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".