Monday, September 14, 2009

Hudson Too Has Problems (Subversion Update Mode)

Check out the updates below as well.

I was wishing that hudson would not have many bugs, as its GUI is quite sleek. But turns out it is not so. I'm facing a curious problem: although I've set to "svn update", hudson always tries to delete the workspace at the end of the build, and always fails. This problem has been reported before here: https://hudson.dev.java.net/issues/show_bug.cgi?id=86&historysort=new.

The bug report says the issue is already fixed, but I am facing the same problem even now. It may be triggered because I am using "local directory" option to check out svn code into a particular subdirectory in the workspace (then it is an another bug).

On a side note: The fix of the above bug report is scary -- just a "/" can cause such a mess -- this probably means the code is not too well written; that's why I'm facing a similar bug.

Update:  Sept 22, 2009
I am quite happy with hudson so far, although I had trouble here and there. In summary I face the following troubles currently:
  1. Hudson deletes the svn checked out code (using CMakebuilder), even when "use svn update" is marked. To work around, I've reverted to clean build, and reduced the frequency of checkout. Update: It turns out the problem was due to CMakebuilder plugin, which cleaned up the directory, not hudson.
  2. I'm not sure how to use Hudson CMakebuilder plugin on windows. To work around, I modified the shell script provided at http://schneide.wordpress.com/2009/04/07/cmake-builder-plugin-for-hudson/. Then Hudson complained that it can't execute sh, so I installed cygwin and appended its bin directory into my PATH environment variable. I don't have time to try cmakebuilder again after installing cygwin, but that might also work fine. I believe that the CMakebuilder plugin has created more problems for me than it solved. It needs to be rewritten. I will try to do it next week. 
  3. I can't install Hudson as a Windows Service through the dashboard. I'm getting AccessDenied error as below, even though the current user has Admin privileges.

    WMI.WmiException: AccessDenied
    at WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
       at WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
       at WMI.Win32ServicesProxy.Create(String , String , String , ServiceType , ErrorControl , StartMode , Boolean , String[] )
       at winsw.WrapperService.Run(String[] args)
       at winsw.WrapperService.Main(String[] args)

But overall Hudson has worked for me quite well, and with almost no hassle.

No comments: