Bug 26069 - modrdn nicht zuverlässig
modrdn nicht zuverlässig
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Listener (univention-directory-listener)
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0-1
Assigned To: Stefan Gohmann
Arvid Requate
:
Depends on:
Blocks: 20645
  Show dependency treegraph
 
Reported: 2012-02-09 13:06 CET by Felix Botner
Modified: 2014-04-04 19:19 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:


Attachments
listener.log debug=4 (219.00 KB, application/x-gzip)
2012-02-09 13:53 CET, Felix Botner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2012-02-09 13:06:47 CET
Ich habe einen Listener mit modrdn "Unterstützung"

...
modrdn='1'


def handler(dn, new, old, command):
        univention.debug.debug(univention.debug.LISTENER, univention.debug.ERROR,"init: dn %s" % dn)
        univention.debug.debug(univention.debug.LISTENER, univention.debug.ERROR,"init: command %s" % command)
...


Wenn ich nun vorhandene Shares per UDM Python API in einer Schleife umbenenne, sollte der Listener für alle einzeln mit command=r und command=a aufgerufen werden. In meinem Fall wurde aber command=a ein paar mal "vergessen":

init: dn cn=s02-4r,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r
init: dn cn=s02-5r,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command a

init: dn cn=s02-4B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r
init: dn cn=s02-5B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command a

init: dn cn=s02-3C,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r
init: dn cn=s02-4C,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command a

init: dn cn=s02-3B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r

init: dn cn=s02-2A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r
init: dn cn=s02-3A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command a

init: dn cn=s02-2B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r

init: dn cn=s02-1A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
init: command r

/var/lib/univention-ldap/notify/transaction:

841948 cn=s02-4r,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841949 cn=s02-5r,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841950 cn=s02-5r,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m
841951 cn=s02-4r,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841952 cn=s02-5r,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841953 cn=s02-5r,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m
841954 cn=s02-4B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841955 cn=s02-5B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841956 cn=s02-5B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m                                                                  
841957 cn=s02-4B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841958 cn=s02-5B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841959 cn=s02-5B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m
841960 cn=s02-3C,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841961 cn=s02-4C,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841962 cn=s02-4C,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m
841963 cn=s02-3C,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841964 cn=s02-4C,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841965 cn=s02-4C,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m
841966 cn=s02-3B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841967 cn=s02-4B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841968 cn=s02-4B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m
841969 cn=s02-3B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841970 cn=s02-4B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841971 cn=s02-4B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m
841972 cn=s02-2A,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841973 cn=s02-3A,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841974 cn=s02-3A,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m
841975 cn=s02-2A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841976 cn=s02-3A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841977 cn=s02-3A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m
841978 cn=s02-2B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841979 cn=s02-3B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841980 cn=s02-3B,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m
841981 cn=s02-2B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841982 cn=s02-3B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841983 cn=s02-3B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m
841984 cn=s02-1A,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test r
841985 cn=s02-2A,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test a
841986 cn=s02-2A,cn=klassen,cn=schueler,cn=groups,ou=s02,dc=school,dc=test m
841987 cn=s02-1A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test r
841988 cn=s02-2A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test a
841989 cn=s02-2A,cn=klassen,cn=shares,ou=s02,dc=school,dc=test m

Die Shares wurde wie folgt umbenannt:

# old   new
s02-4r  s02-5r
s02-4B  s02-5B
s02-3C  s02-4C
s02-3B  s02-4B -> failed
s02-2A  s02-3A
s02-2B  s02-3B -> failed
s02-1A  s02-2A -> failed

Auffällig hier ist, dass alle die fehlgeschlagen sind, die es vorher bereist gab (zu diesem Zeitpunkt aber bereits umbenannt sein sollten). Sind hier vielleicht noch falsche Daten in einer Art Cache gespeichert?
Comment 1 Felix Botner univentionstaff 2012-02-09 13:53:48 CET
Created attachment 4162 [details]
listener.log debug=4
Comment 2 Stefan Gohmann univentionstaff 2012-02-20 11:43:21 CET
Wenn das Objekt zu einem Objekt wird, welches es bereits gab, wird der Handler nicht aufgerufen. Der Handler wird nicht aufgerufen, da das neue Objekt identisch ist, mit dem alten Objekt.

Beispielsweise wird aus
 cn=s02-3B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test
das Objekt
 cn=s02-4B,cn=klassen,cn=shares,ou=s02,dc=school,dc=test

Das Objekt cn=s02-4B gab es vorher schon mit genau den gleichen Werten.
Comment 3 Stefan Gohmann univentionstaff 2012-02-20 13:50:38 CET
Das Objekt wird beim modrdn jetzt aus dem Cache entfernt.
Comment 4 Arvid Requate univentionstaff 2012-02-21 14:27:45 CET
Verified:
 * Funktion bei modrdn ist jetzt ok, siehe unten
 * Changelog ok

----------------------------------------------------------------------------
13.02.12 11:31:24.497  LISTENER    ( WARN    ) : initializing module modhandler
13.02.12 11:31:24.771  LISTENER    ( WARN    ) : finished initializing module modhandler
13.02.12 13:39:02.875  LISTENER    ( ERROR   ) : modhandler -- dn: 'cn=share1A,cn=shares,dc=ucs3s4x2,dc=qa'
13.02.12 13:39:02.876  LISTENER    ( ERROR   ) : modhandler -- command: 'a'
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsd mountd.
Re-exporting directories for NFS kernel daemon....
Reloading /etc/samba/smb.conf (smbd only):.
13.02.12 13:39:48.767  LISTENER    ( ERROR   ) : modhandler -- dn: 'cn=share1B,cn=shares,dc=ucs3s4x2,dc=qa'
13.02.12 13:39:48.768  LISTENER    ( ERROR   ) : modhandler -- command: 'a'
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsd mountd.
Re-exporting directories for NFS kernel daemon....
Reloading /etc/samba/smb.conf (smbd only):.
13.02.12 13:40:33.683  LISTENER    ( ERROR   ) : modhandler -- dn: 'cn=share1B,cn=shares,dc=ucs3s4x2,dc=qa'
13.02.12 13:40:33.684  LISTENER    ( ERROR   ) : modhandler -- command: 'r'
13.02.12 13:40:33.798  LISTENER    ( ERROR   ) : modhandler -- dn: 'cn=share1C,cn=shares,dc=ucs3s4x2,dc=qa'
13.02.12 13:40:33.798  LISTENER    ( ERROR   ) : modhandler -- command: 'a'
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsd mountd.
Re-exporting directories for NFS kernel daemon....
Reloading /etc/samba/smb.conf (smbd only):.
13.02.12 13:40:49.783  LISTENER    ( ERROR   ) : modhandler -- dn: 'cn=share1A,cn=shares,dc=ucs3s4x2,dc=qa'
13.02.12 13:40:49.784  LISTENER    ( ERROR   ) : modhandler -- command: 'r'
13.02.12 13:40:49.809  LISTENER    ( ERROR   ) : modhandler -- dn: 'cn=share1B,cn=shares,dc=ucs3s4x2,dc=qa'
13.02.12 13:40:49.809  LISTENER    ( ERROR   ) : modhandler -- command: 'a'
---------------------------------------------------------------------

univention-directory-listener-dump | grep -i share1A
liefert danach nichts zurück.
Comment 5 Sönke Schwardt-Krummrich univentionstaff 2012-03-04 14:34:20 CET
UCS 3.0-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert
werden: "Clone This Bug"