FIX: Memory leak occurs when you start and stop an XEvent session repeatedly in SQL Server 2012

Applies to: SQL Server 2012 DeveloperSQL Server 2012 EnterpriseSQL Server 2012 Standard More

Symptoms


Assume that you create an XEvent session that has predicates in Microsoft SQL Server 2012. When you start and stop the XEvent session repeatedly, memory leak occurs and you notice that the memory allocated by 'MEMORYCLERK_XE' increases gradually.
Here is a sample XEvent session that demonstrates the behavior:
CREATE EVENT SESSION[MyDiagnosticSession]ON SERVER
ADD EVENT sqlserver.module_end(
ACTION (sqlserver.client_app_name,sqlserver.plan_handle,sqlserver.session_id,sqlserver.sql_text)
WHERE ([package0].[Greater_than_equal_unicode_string]([sqlserver].[client_app_name],'MyApplication1')
AND[package0].[Less_than_equal_unicode_string]([sqlserver].[client_app_name],'Myapplication2')))

Note You can monitor this memory leak by using the following query or by executing DBCC MEMORYSTATUS:
select [Memory Used KB] = page_size_in_bytes /1024  from sys.dm_os_memory_clerks where type = 'MEMORYCLERK_XE'

Resolution


The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 2 for SQL Server 2012 SP2

Cumulative Update 11 for SQL Server 2012 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.