Home Dashboard Directory Help
Search

Engine: User process preventing OnlineIndexBuildRollupCleanupTask from executing by Phil Brammer


Status: 

Closed
 as Won't Fix Help for as Won't Fix


2
0
Sign in
to vote
Type: Bug
ID: 795134
Opened: 7/26/2013 11:10:47 AM
Access Restriction: Public
0
Workaround(s)
view
0
User(s) can reproduce this bug

Description


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.

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

Thanks.
Sign in to post a workaround.
File Name Submitted By Submitted On File Size  
duplicate_sys_partitions.jpg 7/26/2013 37 KB
demo_duplicate_partitions.txt 7/26/2013 2 KB