TeamCity VCS VSS connection problem

Hi,

In our environment we are running TeamCity Professional Version 4.0.2 (build 8222).
We have moved our VCS VSS database recently from the local Development workgroup machine (where TeamCity is running) to the Domain Controller. TeamCity is running on a dev machine that is not a part of the Domain.
Access rights in widnows are OK - we can connect to the new VSS databse folder with windows explorer and can browse/edit it no problem but when we configure new VCS root under administrative settings we get two types of error:

1st - when TeamCity is running as a Local Account service it says that the file does not exist and that access rights should be checked (as I said we can browse through Windows explorer no problem)

2nd - when TeamCity is running as a local account that has the same credentials as account created on the domain where VSS database is, we get this error:

Failed for the root 'Project' #3: VSS execution error: Source Safe Automation COM object is not registered.

jetbrains.buildServer.vcs.VcsException: VSS execution error:
Source Safe Automation COM object is not registered.
at jetbrains.buildServer.buildTriggers.vcs.vss.AbstractSSRunner.start(AbstractSSRunner.java:125)
at jetbrains.buildServer.buildTriggers.vcs.vss.VssSupport.collectBuildChanges(VssSupport.java:212)
at jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.collectBuildChanges(VcsChangesLoader.java:101)
at jetbrains.buildServer.buildTriggers.vcs.VcsChangesLoader.loadChanges(VcsChangesLoader.java:120)
at jetbrains.buildServer.vcs.impl.VcsManagerImpl.loadChanges(VcsManagerImpl.java:667)

at jetbrains.buildServer.serverSide.impl.auth.SecuredVcsManager.loadChanges(SecuredVcsManager.java:72)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1.run(VcsModificationChecker.java:2)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)


at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)




Any suggestions on how to solve this will be greatly appreciated.

Thanks

Tom

13 comments
Comment actions Permalink

For the first issue:
  could you please check you are not using mapped drives. Please try usgin UNC path link \\server\share\folder\folder\srcsafe.ini

0
Comment actions Permalink

For the second issue:

Please check weather you have Microsoft Visual SourceSafe  6.0 or 2005 installed in your machine.
TeamCity uses Microsoft Visual SourceSafe Automation API to access SourceSafe.

Please try to reregister VSS api dll. Find ssapi.dll in VSS installation folder. Run  regsvr32.exe ssapi.dll in that folder.

I recommend you running TeamCity service under some real user not LOCAL SYSTEM

Thanks!

0
Comment actions Permalink

Thanks for your response.

Acorrding to the first issue:

I am getting this message:
File does not exist. Please check TeamCity server user account has enough rights  to access the path
and I have a full share address.

Regarding the second issue:
I have a VSS Client and the Server installed on the machine where the VSS is hosting a database.


any other thoughts?

Regards
Tom

0
Comment actions Permalink

For the first case the issue could be in the network share access from the user that is running TeamCity service.

What rights does TeamCity service have when running? That could be an issue where TeamCity service is unable to access
HKEY_CLASSES_ROOT registry hive or VSS installation folder.

If you use the same machine to host VSS share and run TeamCity, please consider using local filesystem path to srcsafe.ini

Pleaes try running TeamCity from and local machine administrator account.

Thanks!

0
Comment actions Permalink

The TeamCity is being run under the Local administrator account. I can browse to the VSS folder, that is located on the domain controller) through the Windows explorer.
The account has administrator rights - so full rights.

We were using the TeamCity on the same machine that we had the VSS folder but now, after we have migrated the VSS database to the Domain machine we are not able to access it - actually it worked for 5 mins (when service was run under local account that has the same credentials as domain account) but it stopped and I cant get it back to work.

Thanks

0
Comment actions Permalink

Sorry for confusion...
If I run TeamCity service with Administrator account specified (NOT the Local System account), I have the following message (as in issue 2):

VSS execution error:

Source Safe Automation COM object is not registered.


Do I have to regsiter some objects on the Domain controller where the database is hosted?
Thanks for your help!

0
Comment actions Permalink

No you do not need to register any objects on domain controller. VSS uses a file share with write access as "server". All you need is to create a share on some machine and give all users full access to the folder. Please check VSS shared folder is allowed to be accessed from TeamCity service.

Could you please try running TeamCity native client from under your account.
This utilitte is extracted to <TeamCity server>/Temp folder and called like TC-VSS-NATIVE-*.exe

Please copy it to some other folder and run with following arguments:
tc-vss-native.exe /log a b <path to vss share> /login:<login> /pwd:<password> connection $/<your project path>

The tool will create files a, b, a.log.txt. Please attach those files to the issue.

Log in to machine using TeamCity service runinng user account. Does SourceSafe UI able to list files from VSS?

Please try reisntalling SourceSafe on TeamCity running machine under the same the user that is used to run TeamCity service.

Thanks!

0
Comment actions Permalink

Please check you use some domain account that is added to Administrative users group locally and that have full access to VSS share. If you are chenging some rights for the user, please reboot TeamCity running machine in order to ensure perimissions are applied to the account.

0
Comment actions Permalink

This is the outcome of the command. Logging is disabled and I cant find the key described in the output in the windows registry. I am attaching it anyway.


I am able to access the database with Visual Source Safe from the account that TeamCity runs on. There is nor problem with that.

Thanks for your help!



Attachment(s):
output.txt
0
Comment actions Permalink

It is the output from TFS commanline tool. Please check you've tried using VSS tool called TC-VSS-NATIVE.exe

0
Comment actions Permalink

Sorry I have used the TFS version instead of the VSS. Please find the logs attached.

Thanks



Attachment(s):
a
b
a.logs.txt
0
Comment actions Permalink

Please write the full version of VSS that you have installed.

Check ssapi.dll exists in your system....

Please run regsvr32.exe ssapi.dll for that .dll file

Try running tc-vss-native tool again.

Thanks!

0
Comment actions Permalink

OMG ! Great! Thanks for your help!
When I have moved the VSS database to the domain controller I have renamed the old folder on the local machine. It turns out that the ssapi.dll was located in there and basically the system could not register it as it could not find it! I have now reisntalled the VSS client and it works!!!

Thanks for all your help and time!

Best Regards!
Tom

0

Please sign in to leave a comment.