Access Violation in Snatrc.dll When You Enable CPI-C API Traces (267993)
The information in this article applies to:
- Microsoft Host Integration Server 2000
- Microsoft SNA Server 3.0 SP1
- Microsoft SNA Server 3.0 SP2
- Microsoft SNA Server 3.0 SP3
- Microsoft SNA Server 3.0 SP4
- Microsoft SNA Server 4.0
- Microsoft SNA Server 4.0 SP1
- Microsoft SNA Server 4.0 SP2
- Microsoft SNA Server 4.0 SP3
This article was previously published under Q267993 SYMPTOMS
An Access Violation error message may occur in the SNA Server Trace DLL (Snatrc.dll) when CPI-C API tracing is enabled through the SNA Server Trace program (Snatrace.exe). The symptoms that occur vary depending on the CPI-C application and the context that it is running under. If Drwtsn32.exe is the default debugger on the Windows NT or Windows 2000-based computer where tracing is enabled, a Drwtsn32.log entry similar to the following may be created:
Application exception occurred:
App: dll\snatrc.dbg (<process id>)
Exception number: c0000005 (access violation)
The function that fails is com_trc_dumpl.
If a Drwtsn32.log entry is not created, an application debugger such as NTSD, CDB, or Visual Studio can be used to catch the Access Violation error message. The following is the output obtained from an application debugger when the Access Violation error message occurs:
Access violation - code c0000005 (first chance)
eax=00000000 ebx=fdc9afff ecx=00000000 edx=00000000 esi=78003e6d edi=02365001 eip=61d01cea esp=1c2cf4fc ebp=00000001 iopl=0 nv up ei pl zr na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00010246
SNATRC!com_trc_dumpl+aa: 61d01cea 8a47ff mov al,[edi-0x1] ds:0023:02365000=??
0:038> kb
ChildEBP RetAddr Args to Child
1c2cf54c 61d02358 00000021 61d124f0 02365000 SNATRC!com_trc_dumpl+0xaa
1c2cf57c 61d08523 00000021 61d124f0 02364ff0 SNATRC!com_trc_dump+0x88
1c2cf6b8 62e12058 00000001 00000017 1b8c03d0 SNATRC!seputrcp_d+0x3033
602012b0 55536021 57c08556 0102840f 15ff0000 WCPIC32!seputrcp+0x7f [e:\sna40\shared\win32\semfcom.c @ 513]
3d6ca151 00000000 00000000 00000000 00000000 0x55536021
If the CPI-C application is running as part of an MTX object under Microsoft Transaction Server (MTS), an event similar to the following may be logged in the Windows NT or Windows 2000 Application event log:
Event ID: 4104
Source: Transaction Server
Description: An object call caused an exception.
(Package: BCCS DSO) (ProgId: MCCMGSP.ExecuteTransaction)
(CLSID: {61D8D9B8-80AF-11D2-81A6-006008A0C451})
(Interface: ExecuteTransaction)
(IID: {61D8D9B7-80AF-11D2-81A6-006008A0C451})
(Method: 13)
(Microsoft Transaction Server Internals Information:
File: d:\viper\src\runtime\cw\cwlib.cpp, Line: 861).
After the Access Violation error message occurs, the associated MTX object(s) stops responding (hangs).
CAUSE
The following issues can cause the Access Violation error message in Snatrc.dll when CPI-C API tracing is enabled: - The tracing routine for the CMSTPN (Set_TP_Name) call ignores the TP_Name_Length field and writes a 64-byte TP_Name regardless of the actual length of the TP_Name. This can result in an Access Violation error message if the calling program allocates less than 64-bytes of buffer to store the TP_name.
- The tracing routine for the CMSSL (Set_Sync_Level) call causes an Access Violation error message if the calling program passes an invalid pointer for the sync_level parameter.
RESOLUTIONSNA Server 4.0To resolve this problem, obtain the latest service pack for SNA Server 4.0. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
215838 How to Obtain the Latest SNA Server Version 4.0 Service Pack
Host Integration Server 2000To resolve this problem, obtain the latest service pack for Host Integration Server 2000. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
328152 How to Obtain the Latest Host Integration Server 2000 Service Pack
WORKAROUND
Disable CPI-C API tracing to prevent this problem from occurring.
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Host Integration Server 2000 Service Pack 1.MORE INFORMATION
In addition to correcting the problems found in the tracing routines for the CPI-C CMSTPN and CMSSL calls, an exception handler has been added to the CPI-C API tracing routines to protect applications from being affected if/when an Access Violation error message occurs when CPI-C API traces are enabled. After you apply this update, any future Access Violation error messages that occur when you run CPI-C API traces will result in partially traced CPI-C verbs without affecting the underlying CPI-C application.
Only CPI-C applications that call the CPI-C Set_TP_Name or Set_Sync_Level verbs have the potential of experiencing the Access Violation error message described in this article.
NOTE: SNA Server tracing (including CPI-C tracing) should not be enabled under normal circumstances. SNA Server traces are used to troubleshoot specific problems related to SNA Server and SNA Server related applications.
Modification Type: | Minor | Last Reviewed: | 3/11/2005 |
---|
Keywords: | kbbug kbfix kbHostIntegServ2000preSP1fix kbHostIntegServ2000SP1fix kbSNA400PreSP4fix kbSNA400sp4fix KB267993 |
---|
|