FIX: Merge Replication Reconciler Stack Overflow

This article has been archived. It is offered "as is" and will no longer be updated.
SUMMARY
When you run the SQL Server 2000 merge replication ActiveX control in an application that has a default thread stack size that is less than 1 megabyte (MB), an EXCEPTION_STACK_OVERFLOW exception may occur.

Under a user-mode debugger, the call stack for the thread that is experiencing the exception will look similar to this:

 # ChildEBP RetAddr  00 0442f7b0 03030c94 REPLPROV!_chkstk+0x1701 0442fe5c 10046aec REPLPROV!CMergeDatasource::CommitBatch+0x1a402 0442feb4 10047103 replrec!CDatabaseReconciler::ProcTombstonesMTDest+0x44c03 0442ff3c 1004466c replrec!CDatabaseReconciler::DestThreadProcessQueue+0x3d304 0442ff80 1020c323 replrec!DestThreadProc+0x12c05 0442ffb4 77e8b2d8 MSVCRTD!_threadstartex+0x7306 0442ffec 00000000 KERNEL32!BaseThreadStart+0x52

You can use the Dumpbin.exe utility (with the /HEADERS option) to determine your application's default thread stack size. The "Stack Reserve" value in the output is the size of the space reserved for a thread's stack.

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
177429 INFO: Examples of DUMPBIN Output

CAUSE
The merge replication provider DLL, Replprov.dll, allocates space on the stack for storing replication metadata during processing. For applications whose thread stack size is too small to handle this stack allocation, an EXCEPTION_STACK_OVERFLOW is generated when the reconciler tries to make this allocation.
RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack

Hotfix information

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
Date       Time       Version         Size              File name---------------------------------------------------------------------11/05/02   17:48:13   2000.80.700.0   225,280 bytes     Replprov.dll

Note Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.
Properties

Article ID: 810072 - Last Review: 02/27/2014 18:42:52 - Revision: 4.3

  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000, Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix KB810072
Feedback