Bug 27955 - univention-ldap-overlay-memberof sollte die Attribute an den Gruppenobjekten nicht löschen
univention-ldap-overlay-memberof sollte die Attribute an den Gruppenobjekten ...
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: LDAP
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.1
Assigned To: Felix Botner
Arvid Requate
: interim-3
: 27957 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-17 15:29 CEST by Felix Botner
Modified: 2012-12-12 21:10 CET (History)
2 users (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

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2012-07-17 15:29:12 CEST
In univention-ldap-overlay-memberof werden aus allen Gruppen die uniqueMember entfernt und wieder hinzugefügt, damit das slapd-overlay memberof das memberof Attribut für alle vorhandenen Benutzer initialisiert. Diese Änderung ist ungünstig, da mindestens auf dem Master dann Listener Module angestoßen werden könnten.

Besser wäre es, dass memberof ohne Änderung am LDAP zu initialisieren bzw. zum Zeitpunkt der Initialisierung das Listener/Replikations Mechanismen zu deaktivieren.
Comment 1 Arvid Requate univentionstaff 2012-07-17 15:50:32 CEST
*** Bug 27957 has been marked as a duplicate of this bug. ***
Comment 2 Arvid Requate univentionstaff 2012-07-17 15:51:45 CEST
Mögliche Alternative:

1. Auf dem Master slapcat+slapadd ?

2. Für die replizierenden Systeme für jedes eindeutige uniqueMember ein
Trigger-Eintrag in /var/lib/univention-ldap/notify/transaction geschrieben
werden (und die last_id entsprechend erhöht, vorher slapd stop; notifier stop).
Im Test zeigte sich, dass die memberOf Attribute an einem Benutzer dann per
Listner repliziert werden (LDAP-Suche nach "*" und '+' liefert auch memberOf).
Zusätzlich zeigte sich im Test, dass durch Replikation des memberOf an
benutzer1 auch gleich die memberOf-Attribute aller Benutzer um die Gruppen
erweitert werden, die sie mit benutzer1 gemein haben. Das führt vermutlich zu
einem deutlich reduzierten realen Replikations-Umfang.
Comment 3 Felix Botner univentionstaff 2012-07-17 15:56:37 CEST
(In reply to comment #2)
> Mögliche Alternative:
> 
> 1. Auf dem Master slapcat+slapadd ?

das hat auf einem Slave nicht funktioniert

> 
> 2. Für die replizierenden Systeme für jedes eindeutige uniqueMember ein
> Trigger-Eintrag in /var/lib/univention-ldap/notify/transaction geschrieben
> werden (und die last_id entsprechend erhöht, vorher slapd stop; notifier stop).
> Im Test zeigte sich, dass die memberOf Attribute an einem Benutzer dann per
> Listner repliziert werden (LDAP-Suche nach "*" und '+' liefert auch memberOf).
> Zusätzlich zeigte sich im Test, dass durch Replikation des memberOf an
> benutzer1 auch gleich die memberOf-Attribute aller Benutzer um die Gruppen
> erweitert werden, die sie mit benutzer1 gemein haben. Das führt vermutlich zu
> einem deutlich reduzierten realen Replikations-Umfang.

Da hat man aber wieder das Problem, dass das memberof auf dem Master auch initialisiert werden muss (mit univention-ldap-overlay-memberof), dafür bräuchte man dann auch eine Alternative.
Comment 4 Arvid Requate univentionstaff 2012-07-17 16:03:50 CEST
Ja, zuerst muss das auf dem Master gelöst werden, der Punkt 2. würde dann nur helfen einen Neujoin der Systeme zu vermeiden.
Comment 5 Felix Botner univentionstaff 2012-10-30 12:34:00 CET
In univention-update-memberof wird nun statt 

lo.modify(dn, [("uniqueMember", uniqueMember, [])])
lo.modify(dn, [("uniqueMember", [], uniqueMember)])

ein einfache replace gemacht

lo.modify_s(dn, ml).

Danach ist das memberof auf dem Master vorhanden.

-> univention-ldapsearch  '(uid=*)' memberOf
...
# test1, users, ucs.new
dn: uid=test1,cn=users,dc=ucs,dc=new
memberOf: cn=Domain Users,cn=groups,dc=ucs,dc=new
...
Comment 6 Arvid Requate univentionstaff 2012-11-19 15:58:46 CET
Verified:
 * Funktion OK
 * Changelog OK

Der SDB-Artikel muss später noch überarbeitet werden (Bug 29283).
Comment 7 Stefan Gohmann univentionstaff 2012-12-12 21:10:25 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".