Command line errors

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

Moderator: SourceGear

Post Reply
ajj3085
Posts: 228
Joined: Thu Feb 16, 2006 11:39 am

Command line errors

Post by ajj3085 » Thu Aug 23, 2007 11:22 am

Hi,

I'm getting this error quite a bit when i execute the command line client:
<vault>
<error>
<exception>System.Exception: The connection to the server failed: server can
not be contacted or uses a protocol that is not supported by this client. System
.Web.Services.Protocols.SoapException: Server was unable to process request. ---
> System.NullReferenceException: Object reference not set to an instance of a
n object.
at VaultServiceSQL.VaultSqlSystem.GetLoginInfo(VaultSqlConn conn, String strL
ogin, String strHostname, String strSessionID, VaultUser vu, String& strDbHa
shPwd, Int32& nAttempts)
at VaultServiceAPILib.VaultServiceAPI.AuthenticateAndLogin(VaultSqlConn conn,
Boolean allowwebonly, String strLogin, String strDecryptedPassword, String strH
ostname, String strSessionID, VaultUser vu, Guid& gSessionGUID, Int32& n
ValidUserAttempts)
at VaultServiceAPILib.VaultServiceAPI.Login(VaultSqlConn conn, Boolean alloww
ebonly, String strLogin, String strDecryptedPassword, String strHostname, String
strSessionID, String& strToken, VaultUser& vu, Int32& nValidUserAtt
empts)
at VaultServiceAPILib.VaultServiceAPISystem.DoLogin(Boolean allowwebonlyusers
, Boolean bAdminLogin, HttpSessionState hss, String strHostname, String strLogin
, String strPassword, String strRMKey, String& strAuthToken)
at VaultService.VaultService.Login(String strHostname, Boolean bUseFullFiles,
String username, String strEncryptedPassword, String strRMKey, String& strA
uthToken)
--- End of inner exception stack trace --- ---> System.Web.Services.Protoc
ols.SoapException: System.Web.Services.Protocols.SoapException: Server was unabl
e to process request. ---> System.NullReferenceException: Object reference no
t set to an instance of an object.
at VaultServiceSQL.VaultSqlSystem.GetLoginInfo(VaultSqlConn conn, String strL
ogin, String strHostname, String strSessionID, VaultUser vu, String& strDbHa
shPwd, Int32& nAttempts)
at VaultServiceAPILib.VaultServiceAPI.AuthenticateAndLogin(VaultSqlConn conn,
Boolean allowwebonly, String strLogin, String strDecryptedPassword, String strH
ostname, String strSessionID, VaultUser vu, Guid& gSessionGUID, Int32& n
ValidUserAttempts)
at VaultServiceAPILib.VaultServiceAPI.Login(VaultSqlConn conn, Boolean alloww
ebonly, String strLogin, String strDecryptedPassword, String strHostname, String
strSessionID, String& strToken, VaultUser& vu, Int32& nValidUserAtt
empts)
at VaultServiceAPILib.VaultServiceAPISystem.DoLogin(Boolean allowwebonlyusers
, Boolean bAdminLogin, HttpSessionState hss, String strHostname, String strLogin
, String strPassword, String strRMKey, String& strAuthToken)
at VaultService.VaultService.Login(String strHostname, Boolean bUseFullFiles,
String username, String strEncryptedPassword, String strRMKey, String& strA
uthToken)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClie
ntMessage message, WebResponse response, Stream responseStream, Boolean asyncCal
l)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodN
ame, Object[] parameters)
at VaultClientNetLib.ClientService.VaultService.Login(String strHostname, Boo
lean bUseFullFiles, String username, String strEncryptedPassword, String strRMKe
y, String& strAuthToken)
at VaultClientNetLib.VaultConnection.Login(String strURLBase, String strUserL
ogin, String strPassword)
at VaultClientOperationsLib.ClientInstance.Login(String urlbase, String usern
ame, String password)
at VaultClientIntegrationLib.ServerOperations.Login(AccessLevelType altComman
d, Boolean bAllowAuto, Boolean bSaveSession)
--- End of inner exception stack trace ---
at VaultClientIntegrationLib.ServerOperations.Login(AccessLevelType altComman
d, Boolean bAllowAuto, Boolean bSaveSession)
at VaultClientIntegrationLib.ServerOperations.Login()
at VaultCmdLineClient.VaultCmdLineClient.ProcessCommand(Args curArg)
at VaultCmdLineClient.VaultCmdLineClient.Main(String[] args)</exception>
</error>
<result>
<success>False</success>
</result>
</vault>

any ideas what might be wrong? (this is actual output from the command line client, the log in ccnet is different but indicates the command line command is failing).

Could it be because no -password is specified (the builder account has no password)

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Thu Aug 23, 2007 11:28 am

That error can indicate that there is a large difference in version between the client you are using and the server.

Do you have the GUI client loaded on the same machine? If so, can you open it, connect to a respository, and go to Help - Technical Support and post the information from there?

ajj3085
Posts: 228
Joined: Thu Feb 16, 2006 11:39 am

Post by ajj3085 » Thu Aug 23, 2007 11:39 am

This is what the client GUI posts in the messages tab:

[8/23/2007 1:40:59 PM] Version Check: This Fortress client is version 1.0.4.15848
[8/23/2007 1:41:00 PM] Version Check: Your Fortress server is version 1.0.4.15848

Client Information
Fortress Client Version: 1.0.4.15848
.Net Framework Version: 2.0.50727.832
Operating System: Microsoft(R) Windows(R) Server 2003, Standard Edition
Service Pack: 2.0
OS Version: 5.2.3790
Total Physical Memory: 1013.98 MB
Time Zone: (GMT-05:00) Eastern Time (US & Canada)

Server Information
Fortress Server Version: 1.0.4.15848
.Net Framework Version: 2.0.50727.832
Operating System: Microsoft(R) Windows(R) Server 2003, Standard Edition
Service Pack: 2.0
OS Version: 5.2.3790
Timezone: (GMT-05:00) Eastern Time (US & Canada)
SQL Version: Microsoft SQL Server 2005 - 9.00.3054.00 (Intel X86)
Mar 23 2007 16:28:52
Copyright (c) 1988-2005 Microsoft Corporation
Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

License Information
0 serial number(s):

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Thu Aug 23, 2007 12:35 pm

As I looked further, it looks like it's failing on the login dialog. What happens if you just pull up a command prompt and use the same commands you do in CCNet?

ajj3085
Posts: 228
Joined: Thu Feb 16, 2006 11:39 am

Post by ajj3085 » Thu Aug 23, 2007 12:38 pm

The error xml I posted was the result of trying the command line that CC.net was attempting.

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Post by Beth » Thu Aug 23, 2007 12:53 pm

Can you open up the command line and type Vault Help? Then at the very top of the results can you verify that it says Fortress instead of Vault?

Now I see the password part. Yes, try -password "". Use empty quotes to show no password.

ian_sg
Posts: 787
Joined: Wed May 04, 2005 10:55 am
Location: SourceGear
Contact:

Post by ian_sg » Thu Aug 23, 2007 12:57 pm

Does this happen every time, or only intermittently?

Is CruiseControl.NET actually failing in any way as a result of this error?

Because CruiseControl.NET can overwhelm a Fortress server with logins, it automatically retries in the event of failure.
Ian Olsen
SourceGear

ajj3085
Posts: 228
Joined: Thu Feb 16, 2006 11:39 am

Post by ajj3085 » Thu Aug 23, 2007 1:01 pm

Seems to be intermittent, but a message is in the log every few seconds.

Why would overwhelming Vault result in a NullReferenceException?

CC.net seems to 'miss' changes at times because of it. At least I can't see any other reason for CC.net to be missing changes.

ian_sg
Posts: 787
Joined: Wed May 04, 2005 10:55 am
Location: SourceGear
Contact:

Post by ian_sg » Thu Aug 23, 2007 1:59 pm

That shouldn't be causing missed changes. Are CC.NET and the Fortress SQL Server on separate machines? If so, a difference in the system clocks on those machines has been known to cause missed checkins.
Ian Olsen
SourceGear

ajj3085
Posts: 228
Joined: Thu Feb 16, 2006 11:39 am

Post by ajj3085 » Thu Aug 23, 2007 2:09 pm

The VaultService and database are on separate servers, however they are both members of our domain and the clocks are kept in sync.

This issue has only surfaced since upgrading to Fortress.

This is a sample of the ccnet.log file:
2007-08-23 15:59:36,026 [MedSales Help:WARN] Attempt 1 of 5: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: . Process command: c:\program files\sourcegear\Fortress client\vault.exe versionhistory "$/dotnet/MedSales Help" -beginversion 142 -rowlimit 1 -host localhost -user <user> -repository BusinessApplications -ssl
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3.ExecuteWithRetries(ProcessInfo processInfo)
2007-08-23 16:02:34,937 [MedMerge.Business:WARN] Attempt 1 of 5: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: . Process command: c:\program files\sourcegear\Fortress client\vault.exe versionhistory $/dotnet/MedMerge.Business -beginversion 34 -rowlimit 1 -host localhost -user <user> -repository BusinessApplications -ssl
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3.ExecuteWithRetries(ProcessInfo processInfo)
2007-08-23 16:02:43,844 [MedMerge.Business:WARN] Attempt 2 of 5: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: . Process command: c:\program files\sourcegear\Fortress client\vault.exe versionhistory $/dotnet/MedMerge.Business -beginversion 34 -rowlimit 1 -host localhost -user <user> -repository BusinessApplications -ssl
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3.ExecuteWithRetries(ProcessInfo processInfo)
2007-08-23 16:05:54,364 [MedServices.Business:WARN] Attempt 1 of 5: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: . Process command: c:\program files\sourcegear\Fortress client\vault.exe versionhistory $/dotnet/MedServices.Business -beginversion 47 -rowlimit 1 -host localhost -user <user> -repository BusinessApplications -ssl
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Vault3.ExecuteWithRetries(ProcessInfo processInfo)


I assume this no longer causes a cc.net project failure and that the check will be retried.

ian_sg
Posts: 787
Joined: Wed May 04, 2005 10:55 am
Location: SourceGear
Contact:

Post by ian_sg » Thu Aug 23, 2007 2:20 pm

Right. We would like the server to behave more gracefully in this case (lots of virtually simultaneous logins of the same user), but in the mean time, CCNet automatically retries, as you're seeing in the log.
Ian Olsen
SourceGear

Post Reply