Microsoft KB Archive/267993

= Access Violation in Snatrc.dll When You Enable CPI-C API Traces =

Article ID: 267993

Article Last Modified on 2/19/2007

-

APPLIES TO


 * Microsoft Host Integration Server 2000 Standard Edition
 * Microsoft SNA Server 4.0
 * Microsoft SNA Server 3.0 Service Pack 2
 * Microsoft SNA Server 3.0 Service Pack 3
 * Microsoft SNA Server 3.0 Service Pack 4
 * Microsoft SNA Server 4.0
 * Microsoft SNA Server 4.0 Service Pack 1
 * Microsoft SNA Server 4.0 Service Pack 2
 * Microsoft SNA Server 4.0 Service Pack 3

-



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

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.



SNA Server 4.0
To 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 2000
To 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.



STATUS
Microsoft 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.

Additional query words: HIS 2000

Keywords: kbbug kbfix kbsna400presp4fix kbhostintegserv2000sp1fix kbhostintegserv2000presp1fix kbsna400sp4fix KB267993

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.