Bug 23601 - Fehlertolleranteres Verhalten für univention-sync-memberuid
Fehlertolleranteres Verhalten für univention-sync-memberuid
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: General
UCS 2.4
Other Linux
: P5 minor (vote)
: UCS 3.0-2
Assigned To: Sönke Schwardt-Krummrich
Philipp Hahn
: interim-3
Depends on:
Blocks: 27907
  Show dependency treegraph
 
Reported: 2011-09-13 15:21 CEST by Sönke Schwardt-Krummrich
Modified: 2012-07-20 15:24 CEST (History)
1 user (show)

See Also:
What kind of report is it?: ---
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:
Bug group (optional):
Max CVSS v3 score:
schwardt: Patch_Available+


Attachments
Exceptions beim Suchen nach Objekten abfangen (1.20 KB, patch)
2011-09-13 15:21 CEST, Sönke Schwardt-Krummrich
Details | Diff
Test plan (901 bytes, text/plain)
2012-07-13 11:16 CEST, Philipp Hahn
Details
Future cleanup (4.55 KB, patch)
2012-07-13 11:17 CEST, Philipp Hahn
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2011-09-13 15:21:06 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.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2012-07-06 16:39:32 CEST
Patch wurde übernommen; Paket wurde gebaut; Changelogeintrag wurde erstellt
univention-directory-manager-modules (7.0.273-1) unstable; urgency=low
Comment 2 Philipp Hahn univentionstaff 2012-07-13 11:15:39 CEST
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.
Comment 3 Philipp Hahn univentionstaff 2012-07-13 11:16:47 CEST
Created attachment 4533 [details]
Test plan
Comment 4 Philipp Hahn univentionstaff 2012-07-13 11:17:12 CEST
Created attachment 4534 [details]
Future cleanup
Comment 5 Stefan Gohmann univentionstaff 2012-07-20 15:24:08 CEST
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".