Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Ghost team foundation build controllers

DZone's Guide to

Ghost team foundation build controllers

·
Free Resource

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

 

 


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.



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.



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. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

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

{{ parent.tldr }}

{{ parent.urlSource.name }}