FIX: Log Reader Agent crashes during initialization when you use transactional replication in SQL Server

Applies to: SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 Standard More

Symptoms


When you use transactional replication in Microsoft SQL Server 2012 or Microsoft SQL Server 2014, the Log Reader Agent crashes and returns an access violation during initialization. This problem occurs in the following environments:
  • RTM version of SQL Server 2014
  • SQL Server 2012 Service Pack 2 (SP2)
  • SQL Server 2012 Service Pack 1 systems that have the update 11.00.3460 GDR QFE update from MS14-044 (KB 2977325)

    Note On a SQL Server instance that has the GDR QFE update, when you run multiple log reader agents, you may receive the following error message:

    Another logreader agent for the subscription or subscriptions is running, or the server is working on a previous request by the same agent.
  • SQL Server 2012 SP1

Cause


The problem occurs because there is a race condition during initialization. Two internal threads create a conflict when they close their cursors after they log a message to the distributor’s history table. This causes heap corruption when both threads try to free the same memory.

Resolution


Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.

If the hotfix is available for download, there is a "Hotfix Download Available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website: Note The "Hotfix Download Available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.


Use the following table to determine the right hotfix for your environment. To obtain the hotfix, click the "Hotfix Download Available" button at the beginning of this article.

EnvironmentHotfix
RTM version of SQL Server 2014Cumulative Update 3 for SQL Server 2014
SQL Server 2012 SP2Cumulative Update 1 for SQL Server 2012 SP2
Update MS14-044 (11.00.3460) in SQL Server 2012 SP1 systems-Option 1-

For 64-bit versions
:
SQLServer2012_SP1_COD_2975402_11_0_3467_x64

For 32-bit versions:
SQLServer2012_SP1_COD_2975402_11_0_3467_x86

Note This will update the server to build 11.00.3467

-Option 2-

Cumulative Update 12 for SQL Server 2012 SP1
SQL Server 2012 Service Pack 1 (SP1) without the GDR update from MS14-044 (KB 2977325)Cumulative Update 12 for SQL Server 2012 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.