Sql-server – What does the wait type PREEMPTIVE_XE_CALLBACKEXECUTE mean

extended-eventssql serversql-server-2008wait-types

I have two instances in the last week where a DROP command for an Extended Events session has taken over a day to complete, sitting with the wait: PREEMPTIVE_XE_CALLBACKEXECUTE.

Can anyone explain what this wait type means?

More Background Info:
In the first instance, I ran a T-SQL command to drop the session and it completed a day later. Using sp_whoisactive, I saw that the query was waiting on PREEMPTIVE_XE_CALLBACKEXECUTE.

During this time, Object Explorer's queries to gather metadata were being blocked and recieving lock-timeouts, but there were no other complaints (or so I thought at the time).

I tried to drop another session on Friday, and the same behavior occurred, except it didn't just go away after a day as the with the first event. Instead, I found out this morning that the client application could not connect. It was being blocked by the DROP EVENT SESSION query.

A restart of the SQL Service cleared out the blocking query.

I can't find anything that helps to diagnose what this wait type this is… and why my event sessions won't drop like they should. Can you help?

Server Info: SQL 2008 R2 Enterprise with SP2

Best Answer

I believe this issue was fixed in SQL Server 2008 R2 SP2 Cumulative Update #1 (10.50.4260):

KB #2511963 - FIX: Query stops responding in SQL Server 2008 or in SQL Server 2008 R2 if the query alters or stops an Extended Events session

They don't mention your specific wait type but I have seen others who have and stated that this fix resolved their issue. So, if you are literally on SP2 with no CU (10.50.4000), you should consider at least that CU, or a later one (the most recent CU for 2008 R2 SP2 is CU7 (10.50.4286)).