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

Re: Issues with syncrepl and mirrormode

Pierangelo Masarati wrote:
Pierangelo Masarati wrote:
I've backed out RID, which is now decimal again (0..999), and let sctxcsn
be NULL when no maxcsn can be gathered.  In this case, after running
test050 and leaving the directories in place, if I restart the two servers
and perform an add as the first operation, the server acting as a consumer
crashes both in refreshOnly and in refreshAndPersist modes (I plan to
modify the test in order to trigger this case, so we can track regressions
once it's fixed).  My question is now:

1) is it correct that syncprov_op_response() is set up at all for those
modifications that come from the producer?

Obviously yes, to enable cascaded replication

2) If it is, should maxcsn be available?

don't know yet

3) If not, how should its absence be dealt with?

it should definitely be dealt with: cascaded replication incurs into this issue; after adding cookie logging, testrun/slapd.4.log after test019 is full of

syncprov_sendresp: cookie=rid=001,csn=

This is probably an artifact of syncprov_qresp() which always allocates at least one byte for the queued CSN, thus the bv_val is never NULL. Which is why the test in compose_sync_cookie() was supposed to check BVISEMPTY, not BVISNULL.

  -- Howard Chu
  Chief Architect, Symas Corp.  http://www.symas.com
  Director, Highland Sun        http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP     http://www.openldap.org/project/