Bug 27418 - Handler wird bei Initialisierung teilweise doppelt aufgerufen
Handler wird bei Initialisierung teilweise doppelt aufgerufen
Status: RESOLVED DUPLICATE of bug 27329
Product: UCS
Classification: Unclassified
Component: Listener (univention-directory-listener)
UCS 3.0
All Linux
: P5 minor (vote)
: ---
Assigned To: Philipp Hahn
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-01 09:33 CEST by Philipp Hahn
Modified: 2015-07-15 11:17 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): Further conceptual development
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipp Hahn univentionstaff 2012-06-01 09:33:11 CEST
Bei einem selbstgeschriebenden Listener-Modul (das bisher nur Aufrufe loggt) ist aufgefallen, daß dieses bei der Initialisierung für einige Objekte scheinbar doppelt aufgerufen wird:

> 09:02:15.316  mmp.init()
> 09:02:15.367  mmp.setdata(key=basedn, value=dc=phahn,dc=qa)
> 09:02:15.369  mmp.setdata(key=binddn, value=cn=admin,dc=phahn,dc=qa)
> 09:02:15.371  mmp.setdata(key=bindpw, value=XXXXXXXXXX)
> 09:02:15.373  mmp.setdata(key=ldapserver, value=mas13.phahn.qa)
> 09:02:15.397  mmp.clean()
> 09:02:15.397  mmp.initialize()
> 09:02:18.069  mmp.prerun()
> 09:02:18.113  mmp.handler(dn=uid=join-backup,cn=users,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:18.151  mmp.handler(dn=uid=Administrator,cn=users,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:18.182  mmp.handler(dn=cn=mas13,cn=dc,cn=computers,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:18.244  mmp.handler(dn=uid=join-slave,cn=users,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:18.280  mmp.handler(dn=uid=join-backup,cn=users,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:18.318  mmp.handler(dn=uid=Administrator,cn=users,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:18.353  mmp.handler(dn=cn=mas13,cn=dc,cn=computers,dc=phahn,dc=qa, new=True, old=False, command=n)
> 09:02:33.389  mmp.postrun()

Das verkompliziert in diesem Fall den Listener, da sich dieser bei (new && !old) nicht mehr darauf verlassen kann, daß das Objekt nicht schon existiert.

Das Listener-Modul verwendet „modrdn="True"”, stritt aber auch bei nicht gesetztem modrdn auf.
Comment 1 Philipp Hahn univentionstaff 2012-06-01 12:32:04 CEST
Das tritt auf, wenn zusätzlich zu "filter" auch "filters" spezifiziert sind und diese sich überschneiden.
1. "filters" ist derzeit noch nicht dokumentiert
2. Wegen Bug #27376 wird bei fehlendem "filter" (ggf. dann erst bei einem anderem Modul) eine Fehlermeldung ausgegeben.

Am besten wäre es, daß der Handler nur einmal aufgerufen wird, aber zumindest muß das mit dokumentiert werden, wenn "filters" dokumentiert wird. Deswegen lass ich den Bug nochmal offen.
Comment 2 Sönke Schwardt-Krummrich univentionstaff 2012-06-05 10:19:19 CEST
Wo ist der Unterschied zwischen filter und filters?
Comment 3 Philipp Hahn univentionstaff 2012-06-05 12:36:30 CEST
(In reply to comment #2)
> Wo ist der Unterschied zwischen filter und filters?

1. filters ist nicht dokumentiert
2. filters ist eine Liste von 3-Tupeln [(basis, scope, filter), ...], erlaubt also an unterschiedlichen Stellen im DIT nach unterschiedlichen Dingen zu suchen.
3. filter überdeckt __builtins__.filter()
Comment 4 Philipp Hahn univentionstaff 2015-07-15 11:17:12 CEST
The code for "filters" was removed in Bug #27329 by r35518 for UCS-3.1

*** This bug has been marked as a duplicate of bug 27329 ***