CruiseControl service crashes with Fortress integration

If you are having a problem using Fortress, post a message here.

Moderator: SourceGear

Post Reply
twlichty9990
Posts: 6
Joined: Sun Jan 04, 2009 2:39 pm

CruiseControl service crashes with Fortress integration

Post by twlichty9990 » Sun Jan 04, 2009 2:47 pm

Hello,

I'm working on changing our CruiseControl to use our new Fortress install instead of VSS.

We are using CCNET version 1.4.2.14
The Fortress server version is 1.1.3.18336

I downloaded the CCNet plugin for version 1.1.3 and copied it to the CCNet server directory.

My config file looks like:

<sourcecontrol type="fortressplugin" autoGetSource="true" applyLabel="true" cleanCopy="false">
<username>todd</username>
<password>******</password>
<host>10.0.0.5</host>
<repository>Initial Repository</repository>
<folder>$/ABC/PROJECT/PROJECT.root/</folder>
<ssl>false</ssl>
<useWorkingDirectory>true</useWorkingDirectory>
<workingDirectory>E:\webs\PROJECT\</workingDirectory>
</sourcecontrol>

When I check in a file, the CCNet service crashes. This is what I see in the CCNet log file:

2009-01-04 15:47:05,462 [Project:DEBUG] In FortressVaultSourceControl.GetModifications()
2009-01-04 15:47:05,462 [Project:DEBUG] In FortressVaultSourceControl.LoadState()
2009-01-04 15:47:05,462 [Project:DEBUG] Project PROJECT has no existing state file.

any ideas/thoughts on what I'm doing wrong?

Thanks in advance!

shannon

Re: CruiseControl service crashes with Fortress integration

Post by shannon » Mon Jan 05, 2009 11:33 am

I'm guessing either you're watching many projects or your tree is large (or both). Is either one of those correct?

The new plugin (as opposed to the one that comes with cc.net) does fewer logins, so it's easier on the server, but it keeps a copy of the repository cache in memory to do so. As a result, having a large tree and/or watching many projects runs cc.net out of memory. We are working on a fix for this, but if you can either reduce the size of your tree by deleting unused branches (no need to obliterate) or reduce the number of projects being monitored by cc.net it should fix it.

twlichty9990
Posts: 6
Joined: Sun Jan 04, 2009 2:39 pm

Re: CruiseControl service crashes with Fortress integration

Post by twlichty9990 » Mon Jan 05, 2009 12:15 pm

Nope. This is the only project I have in the CCNet.

shannon

Re: CruiseControl service crashes with Fortress integration

Post by shannon » Mon Jan 05, 2009 12:37 pm

Are there any errors in your server log? (%WINDIR%\Temp\sgvault\sgvault.log)

Can you log in to the gui client using that username and password on that machine?

Also try using forward slashes in your directory path.

twlichty9990
Posts: 6
Joined: Sun Jan 04, 2009 2:39 pm

Re: CruiseControl service crashes with Fortress integration

Post by twlichty9990 » Mon Jan 05, 2009 12:47 pm

There are no errors in the log file.

Yes, I can login to the GUI using that UN & PW.

Looking in the Event Viewer, I can see the following error:

Error writing message "After loading from disk on startup, _cmRepository.Repository.Root is null.
at VaultClientOperationsLib.TreeCache.Load()
at VaultClientOperationsLib.TreeCache..ctor(Int32 repID, String username, String uniqueRepositoryID, String localStoreBasePath, ClientInstance ci)
at VaultClientOperationsLib.ClientInstance.SetActiveRepositoryID(Int32 id, String username, String uniqueRepositoryID, Boolean doRefresh, Boolean updateKnownChangesAll)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.FortressClient.Login(String vaultHost, String vaultRepositoryName, String vaultUser, String vaultPassword, Boolean useSSL, String proxyHost, String proxyDomain, Int32 proxyPort, String proxyUser, String proxyPassword, String& url)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.FortressVaultSourceControl.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)
at ThoughtWorks.CruiseControl.Core.Project.Integrate(IntegrationRequest request)
at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()
at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Run()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
" to log file . Exception was: Path cannot be null.
Parameter name: path

I changed the directory path values to use a forward slash but I still get the above exception in the event viewer. However, the CCNet log file now shows:

2009-01-05 13:57:37,696 [Richardson:DEBUG] In FortressVaultSourceControl.GetModifications()
2009-01-05 13:57:37,696 [Richardson:DEBUG] In FortressVaultSourceControl.LoadState()
2009-01-05 13:57:37,696 [Richardson:DEBUG] Project PROJECT has no existing state file.
2009-01-05 13:57:40,353 [Richardson:INFO] Succesfully logged into Fortress server 10.0.0.5

shannon

Re: CruiseControl service crashes with Fortress integration

Post by shannon » Mon Jan 05, 2009 1:17 pm

Ok, that's progress. Does your client log say anything interesting? (%temp%/VaultGUIClient)

twlichty9990
Posts: 6
Joined: Sun Jan 04, 2009 2:39 pm

Re: CruiseControl service crashes with Fortress integration

Post by twlichty9990 » Mon Jan 05, 2009 1:38 pm

This is the only thing in the log file:

1/5/2009 2:47:10 PM <generic>: [GUIClientWorkerThread:5476] After loading from disk on startup, _cmRepository.Repository.Root is null.
at VaultClientOperationsLib.TreeCache.Load()
at VaultClientOperationsLib.TreeCache..ctor(Int32 repID, String username, String uniqueRepositoryID, String localStoreBasePath, ClientInstance ci)
at VaultClientOperationsLib.ClientInstance.SetActiveRepositoryID(Int32 id, String username, String uniqueRepositoryID, Boolean doRefresh, Boolean updateKnownChangesAll)
at VaultClientPresentationLib.GUIClientInstance.ChooseRepository(Boolean forceDialogShow, String inProfile)
at VaultClientPresentationLib.GUIClientThread.ProcessCommand(GUIClientThreadCommand command, GUIClientThreadCommandResult& outputResult)
at VaultClientPresentationLib.GUIClientThread.Start()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

shannon

Re: CruiseControl service crashes with Fortress integration

Post by shannon » Mon Jan 05, 2009 1:50 pm

Can you try using the 1.1.4 version of the plugin? (I know your server is 1.1.3, but they'll be able to connect.)

twlichty9990
Posts: 6
Joined: Sun Jan 04, 2009 2:39 pm

Re: CruiseControl service crashes with Fortress integration

Post by twlichty9990 » Mon Jan 05, 2009 2:07 pm

Error from Event Viewer:

Error writing message "After loading from disk on startup, _cmRepository.Repository.Root is null.
at VaultClientOperationsLib.TreeCache.Load()
at VaultClientOperationsLib.TreeCache..ctor(Int32 repID, String username, String uniqueRepositoryID, String localStoreBasePath, ClientInstance ci)
at VaultClientOperationsLib.ClientInstance.SetActiveRepositoryID(Int32 id, String username, String uniqueRepositoryID, Boolean doRefresh, Boolean updateKnownChangesAll)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.FortressClient.Login(String vaultHost, String vaultRepositoryName, String vaultUser, String vaultPassword, Boolean useSSL, String proxyHost, String proxyDomain, Int32 proxyPort, String proxyUser, String proxyPassword, String& url)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.FortressVaultSourceControl.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)
at ThoughtWorks.CruiseControl.Core.Project.Integrate(IntegrationRequest request)
at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Integrate()
at ThoughtWorks.CruiseControl.Core.ProjectIntegrator.Run()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
" to log file . Exception was: Path cannot be null.
Parameter name: path

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

twlichty9990
Posts: 6
Joined: Sun Jan 04, 2009 2:39 pm

Re: CruiseControl service crashes with Fortress integration

Post by twlichty9990 » Mon Jan 05, 2009 2:21 pm

OK, this seems to be fixed. I was looking at some of the other posts and one mentioned granting permissions to the C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys directory. When I granted full control the the Everyone group, it started working. I'm going to monkey around with the permissions some more since I'm not comfortable with granting everyone full control. I'll see what the minimum permissions needed are and then post them.

Thanks for all your help.

shannon

Re: CruiseControl service crashes with Fortress integration

Post by shannon » Mon Jan 05, 2009 2:29 pm

Interesting, the errors didn't lead me in the permissions direction, but that happens sometimes. I'm glad it's working.

Post Reply