Engine: User process preventing OnlineIndexBuildRollupCleanupTask from executing - by Phil Brammer

Status : 

  Won't Fix<br /><br />
		Due to several factors the product team decided to focus its efforts on other items.<br /><br />
		A more detailed explanation for the resolution of this particular item may have been provided in the comments section.

Sign in
to vote
ID 795134 Comments
Status Closed Workarounds
Type Bug Repros 0
Opened 7/26/2013 11:10:47 AM
Access Restriction Public


After a failed index rebuild, duplicate rows can exist in sys.partitions as a result of a user process holding an exclusive table lock.  The exclusive lock can block the OnlineIndexBuildRollupCleanupTask task from executing, which can cause duplicate rows to appear in sys.partitions.  

Often users rely on something like SELECT COUNT(*) FROM sys.partitions WHERE object_id = 1234 AND index_id < 2 to quickly see if the table is partitioned or not.

Because OnlineIndexBuildRollupCleanupTask is a background task, the traditional methods for detecting blocking do not work.  Instead you have to turn to something like Profiler to filter on OnlineIndexBuildRollupCleanupTask to see that it is timing out its lock acquisition.  This is not ideal.  It would be great if there were better monitoring in place (XEvents?) to help identify when system background tasks are being blocked by user processes.

Sign in to post a comment.
Posted by Microsoft on 11/6/2013 at 12:14 PM
Hi Phil,

Thanks for your feedback. Unfortunately we aren't able to prioritize this request at the moment so we won't be able to make this change. We will consider this for a future release but unfortunately cannot commit to making this change.