Просмотр исходного кода

Ticket 48445: keep alive entries can break replication

Bug Description:
	On the consumer side, at the end of a total update the replica is enabled and the changelog recreated.
	When the replica is enabled the keep alive entry (for that replica) is created .
	There is a race condition (that look quite systematic in our tests) if the creation of the entry is added to the changelog
	before the changelog is recreated.
	In that case the ADD is erased from the CL and will never be replicated.

	The keep alive entry is created (if it does not already exist) :
		- during a total update (as supplier)
		- when the keep alive is updated
		- when the replica is enabled

Fix Description:
	It is not strictly necessary to create the keep alive when the replica is enabled.
	So we can skip the creation during that step.

https://fedorahosted.org/389/ticket/48445

Reviewed by: Mark Reynolds (thank you Mark)

Platforms tested: F23

Flag Day: no

Doc impact: no
Thierry Bordaz 9 лет назад
Родитель
Сommit
71a891f0dc
1 измененных файлов с 0 добавлено и 1 удалено
  1. 0 1
      ldap/servers/plugins/replication/repl5_replica.c

+ 0 - 1
ldap/servers/plugins/replication/repl5_replica.c

@@ -3972,7 +3972,6 @@ replica_enable_replication (Replica *r)
         /* What to do ? */
         /* What to do ? */
     }
     }
 
 
-    replica_subentry_check(r->repl_root, replica_get_rid(r));
     /* Replica came back online, Check if the total update was terminated.
     /* Replica came back online, Check if the total update was terminated.
        If flag is still set, it was not terminated, therefore the data is
        If flag is still set, it was not terminated, therefore the data is
        very likely to be incorrect, and we should not restart Replication threads...
        very likely to be incorrect, and we should not restart Replication threads...