Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article helps you resolve the problem that occurs when you use an XEvent session that has a sqlos.wait_info
event in SQL Server.
Original product version: SQL Server
Original KB number: 4033835
Symptoms
Consider the following scenario:
You create an XEvent session that has a
sqlos.wait_info
event in Microsoft SQL Server.In this session, you define a filter (predicate) in the following pattern:
[sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%< **Query Text** >')
In this scenario, you may experience any of the following problems:
SQL Server generates access violations or a stack overflow memory dump file.
SQL Server generates a non-yielding scheduler memory dump file.
Queries don't return results, or you can't cancel or kill a query.
When SQL Server produces an
EXCEPTION_ACCESS_VIOLATION
exception and stack overflow memory dump file in the SQL Server Error Log, error messages that resemble either of the following messages are generated:<Time Stamp> spid52 *
<Time Stamp> spid52 * BEGIN STACK DUMP:
<Time Stamp> spid52 *<Time Stamp> spid 52
<Time Stamp> spid52 *
<Time Stamp> spid52 *
<Time Stamp> spid52 * Exception Address = 00007FFA414ED763 Module(sqlmin+000000000000D763)
<Time Stamp> spid52 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
<Time Stamp> spid52 * Access Violation occurred writing address 0000000000000008
<Time Stamp> spid55 Unable to create stack dump file due to stack shortage (Location: scheduler.cpp:2090
Expression: !pWorker->WorkerQueueElem::IsInList ()
SPID: 55
Process ID: 8548)
<Time Stamp> spid55 Stack Signature for the dump is 0x0000000000000000
<Time Stamp> spid55 <Time Stamp> Stack Overflow Dump not possible - Exception c00000fd EXCEPTION_STACK_OVERFLOW at 0x00007FFA4EF85F35
<Time Stamp> spid55 SqlDumpExceptionHandler: Address=0x00007FFA4EF85F35 Exception Code = c00000fd
<Time Stamp> spid55 Rax=000000000000044c Rbx=0000000002612320 Rcx=0000000002612050 Rdx=00000000662baf59
<Time Stamp> spid55 Rsi=000000004b04f848 Rdi=000000004b000270 Rip=000000004ef85f35 Rsp=0000000002611fd0
<Time Stamp> spid55 Rbp=0000000000000000 EFlags=0000000000010202
<Time Stamp> spid55 cs=0000000000000033 ss=000000000000002b ds=000000000000002b
es=000000000000002b fs=0000000000000053 gs=000000000000002b
<Time Stamp> spid55 1: Frame 0000000000000000 Return Address 00007FFA4EF85F35
Workaround
To work around this problem, avoid using complex filter conditions together with the wait_info
event. This is because the wait_info
event is resource-intensive and can slow down a query significantly.
If you want to track <Query Text>
in this situation, change the Filter Predicate pattern to the following:
([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[sql_text],N'<Query Text>')