[Kolab-devel] [issue257] deletion breaks master/slave sync

Bernhard Reiter bernhard at intevation.de
Wed Jul 21 11:05:53 CEST 2004


Hi Martin,

On Wednesday 21 July 2004 07:57, konold at erfrakon.de wrote:
> On Wed, 21 Jul 2004, Bernhard Reiter wrote:

> > Master server: m.test.net
> > Slave server:  s.test.net
> >
> > If you delete a user on m.test.net,
> > this users gets two deleteflags, like:
> >
> > deleteflag: m.test.net
> > deleteflag: s.test.net
>
> This is correct behaviour.
>
> > Next this gets replicated to both ldaps.
>
> This is fine.
>
> > Both ldaps replicate to the local kolab daemons.
>
> Again fine.
>
> > On the master the kolabd will remove the mailbox
> > and then remove the deleteflag: m.test.net
> > leaving the object in, because deleteflag: s.test.net
> > is still there.
>
> Yes, the algorithm is that the kolabd which wants to delete its deleteflag
> checks if it is the last server (only a single deleteflag) if yes it
> deletes the object finally.
>
> > The last operation gets replicated to the slave ldap server.
>
> This is fine.

This also all sounded reasonable to me, I only
wanted to describe the process before the problem.

> > Now only deleteflag: s.test.net is in there and the slave
> > deletes this one and then completely removes this object.
>
> This is also fine.

Well no because it is not done on the master.

> > However this is not communicated back to the master!
>
> All writes to the LDAP repository _must_ be done on the master. Any
> attempt to write to a slave server shall result in a server redirect
> pointing at the master server. We don't intend to support multiple master
> setups at all.

That is what BH and I thought, so we filed the bug. ;-)

> > So in the master our object is still "waiting to be deleted".
>
> This is wrong behaviour.

Obviously. ;-)

> > Possible solutions: Make the Kolagd on the slave
> > write changes only directly to the master.
>
> Are you sure that the current setup allows for "local" writes to slave
> LDAP servers?!

Pretty sure, yes.
Because slapcat on the slave does not show the object anymore,
as slapcat on the master does with only having the deleteflag of
the slave remaning.




More information about the devel mailing list