Hi!

 

I’m getting more experience with delta-syncrepl, but I still have two questions I’m unsure about:

 

  1. In contrast to plan syncrepl, is it true that plain syncrepl will sync contents “from the past” (i.e. content changed before syncrepl had been activated), whereas delta-syncrepl will nor sync changes that were made before delta-syncrepl had been activated (i.e. sync only “new changes”” mad after the delta-syncrepl configuration? (see below, also)
  2. Is it expected that the entryCSNs are identical for a synced entry on each server? I use a check that compare the UUID and the CSN for each entry to verify synchronization, but I see small differences (example below)

 

For question #1: Specifically I have these messages (from today when establishing a new RID) in mind:

slapd[22664]: conn=35370 op=2 syncprov_findbase: searching

slapd[22664]: conn=35370 op=2 syncprov_op_search: registered persistent search

slapd[22664]: conn=35370 op=2 syncprov_play_accesslog: accesslog information inadequate for log replay on csn=20250707100648.450369Z#000000#001#000000

slapd[22664]: conn=35370 op=2 syncprov_findcsn: mode=FIND_CSN csn=20250707100648.450369Z#000000#001#000000

slapd[22664]: conn=35370 op=2 syncprov_findcsn: csn==20250707100648.450369Z#000000#001#000000 not found

slapd[22664]: conn=35370 op=2 syncprov_findcsn: csn<=20250707100648.450369Z#000000#001#000000 found

slapd[22664]: conn=35370 op=2 syncprov_findcsn: mode=FIND_PRESENT csn=

slapd[22664]: conn=35370 op=2 syncprov_sendinfo: present syncIdSet cookie=

 

(and actually some changes made on that server recently were not synced to the other servers that should “pull” from this one)

 

For question #2:

On example I found (comparing server #2 with server #3) was:

-uid=… (c3e62200-55af-1038-9b76-9916ef1a4822): 20250716105944.785857Z#000000#002#000000

+uid=… (c3e62200-55af-1038-9b76-9916ef1a4822): 20250716105944.780532Z#000000#002#000000

 

So there’s a difference in the 5ms area, and (AFAIK) both changes originate from server #2.

 

The corresponding changelog looks like this:

dn: reqStart=20250716105944.000001Z,cn=changelog-1

objectClass: auditModify

structuralObjectClass: auditModify

reqStart: 20250716105944.000001Z

reqEnd: 20250716105944.000003Z

entryCSN: 20250716105944.780532Z#000000#002#000000

 

And that change is the only change made that second.

Server #2 logged for sending the change to server #3:

slapd[1811445]: conn=1020 op=2 syncprov_sendresp: to=003, cookie=rid=112,sid=002,csn=20250716105944.780532Z#000000#002#000000

 

Server #3 logged for receiving the change:

slapd[2528537]: conn=-1 op=0 syncprov_add_slog: adding csn=20250716105944.780532Z#000000#002#000000 to sessionlog, uuid=c3e62200-55af-1038-9b76-9916ef1a4822

slapd[2528537]: slap_queue_csn: queueing 0x7f2d4816df90 20250716105944.780532Z#000000#002#000000

slapd[2528537]: slap_graduate_commit_csn: removing 0x7f2d4816df90 20250716105944.780532Z#000000#002#000000

slapd[2528537]: slap_queue_csn: queueing 0x7f2d4818bf70 20250716105944.780532Z#000000#002#000000

slapd[2528537]: conn=-1 op=0 syncprov_matchops: recording uuid for dn=reqStart=20250716105944.000001Z,cn=changelog-1 on opc=0x7f2d48002be0

slapd[2528537]: conn=1008 op=2 syncprov_qresp: set up a new syncres mode=1 csn=20250716105944.780532Z#000000#002#000000

slapd[2528537]: do_syncrep2: rid=113 cookie=rid=113,sid=003,csn=20250716105944.780532Z#000000#002#000000

slapd[2528537]: do_syncrep2: rid=113 CSN too old, ignoring 20250716105944.780532Z#000000#002#000000 (reqStart=20250716105944.000001Z,cn=changelog-1)

slapd[2528537]: slap_graduate_commit_csn: removing 0x7f2d4814fd10 20250716105944.780532Z#000000#002#000000

 

(next change was several minutes later; rid113 would mean server #3 (sid 3) would try sync to itself (MMR on cn=config artefact))

 

Kind regards,

Ulrich Windl