FIX: Extended Stored Procedure "xp_logevent" Generates an Access Violation When Given Too Large a Parameter

This article was previously published under Q290085
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 351920 (SHILOH_BUGS)
Any string that is longer than 8000 bytes that is given as a second parameter to the xp_logevent stored procedure, causes the following error message to occur:
ODBC: Msg 0, Level 19, State 1
SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005
EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
ODBC: Msg 0, Level 20, State 1
Stored function 'xp_logevent' in the library 'xplog70.dll' generated an
access violation. SQL Server is terminating process 51.
To resolve this problem, obtain the latest service pack for SQL Server 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
Pass a string that is smaller than 8000 characters to the xp_logevent stored procedure.
Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.

Steps to Reproduce Behavior

To reproduce the problem, run this code:
USE mastergoEXEC xp_logevent 60000,'arbitrary string longer than 8000 bytes ...' , informationalgo				
A short stack dump similar to the following is observed in the SQL Server error log:
---------------------------------------------------------------------------Short Stack Dump0069EF5F Module(sqlservr+0029EF5F) (Fill6xData(unsigned char *,class CXVariant *,class CTypeInfo const *,unsigned long *)+0000009A)0069BEDE Module(sqlservr+0029BEDE) (intnl_paramdata(struct srv_proc *,int)+000000DB)0069BF13 Module(sqlservr+0029BF13) (intnl_paramlen(struct srv_proc *,int)+00000014)006956E9 Module(sqlservr+002956E9) (sql_paramlen(struct srv_proc *,int)+000000A8)4106127F Module(OPENDS60+0000127F) (_srv_paramlen+00000013)42EA6201 Module(xplog70+00006201)0063CF65 Module(sqlservr+0023CF65) (FCallRpcDLL(unsigned short *,int,unsigned short *,int,long *,int *)+00000362)0061D68E Module(sqlservr+0021D68E) (CXProc::Execute(class CParamExchange *,int)+000001E9)0061F5CE Module(sqlservr+0021F5CE) (CSQLSource::Execute(class CParamExchange *)+0000038C)0049CD0A Module(sqlservr+0009CD0A) (CStmtExec::XretLocalExec(class CMsqlExecContext *,unsigned short *,int,class WParseName *)const +00000154)0049CB9F Module(sqlservr+0009CB9F) (CStmtExec::XretExecute(class CMsqlExecContext *)const +00000322)004160DB Module(sqlservr+000160DB) (CMsqlExecContext::ExecuteStmts(class ExecutionContext *)+0000027E)00415765 Module(sqlservr+00015765) (CMsqlExecContext::Execute(class CCompPlan *,class CParamExchange *)+000001C7)00415410 Module(sqlservr+00015410) (CSQLSource::Execute(class CParamExchange *)+00000343)00459A54 Module(sqlservr+00059A54) (language_exec(struct srv_proc *)+000003C8)004175D8 Module(sqlservr+000175D8) (process_commands(struct srv_proc *)+000000E0)410735D0 Module(UMS+000035D0) (ProcessWorkRequests(class UmsWorkQueue *)+00000264)4107382C Module(UMS+0000382C) (ThreadStartRoutine(void *)+000000BC)7800BEA1 Module(MSVCRT+0000BEA1) (_beginthread+000000CE)77E837CD Module(KERNEL32+000037CD) (TlsSetValue+000000F0)---------------------------------------------------------------------------				
access violation AV exception

Article ID: 290085 - Last Review: 01/16/2015 21:45:25 - Revision: 3.2

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbbug kbfix kbsqlserv2000sp1fix KB290085