[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#6368) Bug in deleting entry in MirrorMode



hyc@symas.com wrote:

> pitpalme+openldap@gmail.com wrote:
>> [...]
>> The logs are available here:
>>=20
>> <url:http://pitpalme.is-a-geek.net/ldap/>
>> [...]
>=20
> The log shows that the problem is because the two servers are not =
synchronized
> before you begin your test. If you search for "do_syncrep" in the =
ldap1 log,
> you'll see that it was unable to connect to its provider at the very =
beginning
> of the file. It doesn't successfully connect until much later, 97% of =
the way
> down in the log file, after the majority of your testing has already =
been
> running. That delay is based on your syncrepl retry setting.

Thanks for your analyses. I understand the servers were not immediately =
synchronising, when I started to test. But the servers *were* =
synchronized before the test started. I copied data directory of server =
#1 to server #2, so they contained the very identical information.

> When it finally connects it sends a somewhat out of date cookie to the =
peer
> server, and so it starts receiving results back. You get the "already =
exists"
> error because the entry you're trying to add has just been added by =
syncrepl
> itself.

OK.

> Part of the problem is the out-of-date cookie; the consumer checks =
with
> syncprov to make sure it has an up-to-date cookie but obviously in =
your case
> the cookie continues to change since you're still making changes to =
the DB.
> You can avoid this issue by making sure both servers' consumers are =
connected
> before performing any write ops, and you can assist in that by using a =
faster
> initial retry time in your syncrepl config.

I modified slapd.conf to contain 'retry=3D"5 +"' instead of a 60 second =
timeout.

I started both servers and checked "do_syncrepl" in server #1 was =
followed by log information stating it connected to server #2.

I then rerun the test and this time it did not that much iterations, but =
failed during the first run (with each run being 100 round of "add, mod, =
delete").

The URL with new log output is still the same, it's the "debug-02.tar.*" =
files.

Thanks in advance.

Regards,
Peter=