Microsoft KB Archive/290085

= FIX: Extended Stored Procedure &quot;xp_logevent&quot; Generates an Access Violation When Given Too Large a Parameter =

Article ID: 290085

Article Last Modified on 11/6/2003

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition

-



This article was previously published under Q290085



BUG #: 351920 (SHILOH_BUGS)



SYMPTOMS
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.



RESOLUTION
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 the Microsoft Knowledge Base:

290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack



WORKAROUND
Pass a string that is smaller than 8000 characters to the xp_logevent stored procedure.



STATUS
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 master go EXEC xp_logevent 60000,'arbitrary string longer than 8000 bytes ...', informational go A short stack dump similar to the following is observed in the SQL Server error log: --- Short Stack Dump

0069EF5F 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) ---

Additional query words: access violation AV exception

Keywords: kbbug kbfix kbsqlserv2000sp1fix KB290085

-

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

© Microsoft Corporation. All rights reserved.