History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CCNET-1222
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Jean-Marc Talloen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
CruiseControl .NET

When a remote server for a remote working folder is not available, CCNET will not start

Created: 15/Aug/08 03:54 AM   Updated: 16/Sep/08 03:04 AM
Component/s: Configuration
Affects Version/s: 1.4
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment: WinXP


 Description  « Hide
In the configuration of a project, the working folder actually points to a remote (non-windows) server. This can be a linux or OpenVMS server.

Before version 1.4 we used 1.1 and experienced no problems if the remote machine was not avialable.

Now we get during loading:

[CCNet Server:ERROR] INTERNAL ERROR: Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied.

----------
System.IO.IOException: Configuration information could not be read from the domain controller, either because the machine is una
vailable, or access has been denied.

   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
   at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
   at ThoughtWorks.CruiseControl.Core.ProjectIntegrator..ctor(IProject project, IIntegrationQueue integrationQueue)
   at ThoughtWorks.CruiseControl.Core.ProjectIntegratorListFactory.CreateProjectIntegrators(IProjectList projects, IntegrationQu
eueSet integrationQueues)
   at ThoughtWorks.CruiseControl.Core.IntegrationQueueManager.Initialize(IConfiguration configuration)
   at ThoughtWorks.CruiseControl.Core.CruiseServer..ctor(IConfigurationService configurationService, IProjectIntegratorListFacto
ry projectIntegratorListFactory, IProjectSerializer projectSerializer)
   at ThoughtWorks.CruiseControl.Core.CruiseServerFactory.Create(Boolean remote, String configFile)
   at ThoughtWorks.CruiseControl.Core.ConsoleRunner.LaunchServer()
   at ThoughtWorks.CruiseControl.Core.ConsoleRunner.Run()
   at ThoughtWorks.CruiseControl.Console.ConsoleMain.Main(String[] args)
----------

This is my minal configuration to reproduce (even with ccnet -validate)

<cruisecontrol>
  <project name="Remote Build - Server dummy Not Available">
    <workingDirectory>\\dummy\ccnet\release\snt</workingDirectory>
  </project>
</cruisecontrol>

The server 'dummy' does not exist.

CCNET should not fail for all projects in this case...

 All   Comments   Work Log   Change History      Sort Order:
Jean-Marc Talloen [16/Sep/08 03:04 AM]
Hello

I have updated one file so that I could install the 1.4 version: ProjectIntegrator.cs

The ctor has been changed to:

public ProjectIntegrator(IProject project, IIntegrationQueue integrationQueue)
{
    trigger = project.Triggers;
    this.project = project;
    this.integrationQueue = integrationQueue;
    // Make sure the project's directories exist.
    try
    {
        if (!Directory.Exists(project.WorkingDirectory))
            Directory.CreateDirectory(project.WorkingDirectory);
    }
    catch (Exception ex)
    {
        // ignore the fact that the working directory cannot be found
        Log.Error(ex);
    }
    if (!Directory.Exists(project.ArtifactDirectory))
        Directory.CreateDirectory(project.ArtifactDirectory);
}


After this update, ccnet was able to start, even with a directory that could not be created on a remote machine.