Over a million developers have joined DZone.
Silver Partner

Ghost team foundation build controllers

· Agile Zone

BuildIcon_Large

Quite often after an upgrade there are things left over. Most of the time they are easy to delete, but sometimes it takes a little effort. Even rarer are those times when something just will not go away no matter how much you try.

We have had a ghost team build controller hanging around for a while now, and it had defeated my best efforts to get rid of it.



The build controller was from our old TFS server from before our TFS 2010 beta 2 upgrade and was really starting to annoy me. Every time I try to delete it I get the message:

Controller cannot be deleted because there are build in progress
-Manage Build Controller dialog


SNAGHTMLa942cd 

Figure: Deleting a ghost controller does not always work.

I ended up checking all of our 172 Team Projects for the build that was queued, but did not find anything. Jim Lamb pointed me to the “tbl_BuildQueue” table in the team Project Collection database and sure enough there was the nasty little beggar.

image

Figure: The ghost build was easily spotted

Adam Cogan asked me:

“Why did you suspect this one?”


Well, there are a number of things that led me to suspect it:

  • QueueId is very low: Look at the other items, they are in the thousands not single digits
  • ControllerId: I know there is only one legitimate controller, and I am assuming that 6 relates to “zzUnicorn”
  • DefinitionId: This is a very low number and I looked it up in “tbl_BuildDefinition” and it did not exist
  • QueueTime: As we did not upgrade to TFS 2010 until late 2009 a date of 2008 for a queued build is very suspect
  • Status: A status of 2 means that it is still queued


This build must have been queued long ago when we were using TFS 2008, probably a beta, and it never got cleaned up. As controllers are new in TFS 2010 it would have created the “zzUnicorn” controller to handle any build servers that already exist. I had previously deleted the Agent, but leaving the controller just looks untidy.

Now that the ghost build has been identified there are two options:

  • Delete the row
    I would not recommend ever deleting anything from the database to achieve something in TFS. It is really not supported.
  • Set the Status to cancelled (Recommended)
    This is the best option as TFS will then clean it up itself


So I set the Status of this build to 2 (cancelled) and sure enough it disappeared after a couple of minutes and I was then able to then delete the “zzUnicorn” controller.

SNAGHTMLc40486

Figure: Almost completely clean

Now all I have to do is get rid of that untidy “zzBunyip” agent, but that will require rewriting one of our build scripts which will have to wait for now.

 

Topics:

Published at DZone with permission of Martin Hinshelwood , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}