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

konold at erfrakon.de konold at erfrakon.de
Wed Jul 21 07:57:34 CEST 2004

On Wed, 21 Jul 2004, Bernhard Reiter wrote:

Hi Bernhard,

> 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.

> 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.

> 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.

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

This is wrong behaviour.

> 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?!

-- martin

More information about the devel mailing list