Symptoms
Assume that you use Microsoft SQL Server 2012 Service Pack 2 (SP2) merge replication. When you clean up metadata by executing sp_mergemetadataretentioncleanup at the publisher, the metadata cannot be removed even though all subscribers have recently synchronized successfully. In this situation, the synchronization time can be increased significantly because of the excessive metadata.
Note There is a null value in the last_local_recguid column, or there is an old generation in the last_local_recgen column for some subscribers in the sysmergesubscriptions table at the publisher side.Cause
This issue occurs because some changes are introduced to reduce the possibility of non-convergence in the merge metadata cleanup procedure. To achieve this, the cleanup validates which generations could still be active in order to avoid a scenario in which they are deleted and then reintroduced through a subscriber that does not synchronize frequently. This detection mechanism may exclude some generations from the cleanup list even though they are no longer within the retention period. In some cases, this may increase the size of the metadata tables.
Resolution
This issue was first fixed in the following cumulative update of SQL Server.
Cumulative Update 1 for SQL Server 2014 SP1 /en-us/help/3067839
Cumulative Update 4 for SQL Server 2012 SP2 /en-us/help/3007556
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.