FailDBInsert error with one user, one file

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

Moderator: SourceGear

Post Reply
OrovilleTim
Posts: 16
Joined: Tue Apr 18, 2006 2:32 pm
Location: Lake Oroville, CA

FailDBInsert error with one user, one file

Post by OrovilleTim » Thu Apr 10, 2008 12:17 pm

One of our users started getting an error on check-in today. The client reports an error "A database error has occurred (FailDBInsert)." We narrowed it down to one file, and he was able to check everything else in. Things are working fine for other developers, and for him with other files. A relevant section of the log is below, with personal information masked.

Version information...
Client Machine O/S: Windows XP, latest SPs/patches
Client Vault Version: 4.1.0.16216
Server Vault Version: 4.1.0.16216
Vault Server O/S: Windows Server 2003 / IIS 6.0, latest SPs/patches
Database Server O/S: Windows Server 2003 (ia64), latest SPs/patches
Database Software: SQL Server Enterprise Edition (64-bit)
Database Software Version: 8.00.2039 (SP4)

Here is the section of the log file...

Code: Select all

----4/10/2008 10:54:44 AM    someuser--machinename.example.com(172.31.19.71)--SSL Disabled	System.Data.SqlClient.SqlException: Cannot insert duplicate key row in object 'tblfsobjectversions' with unique index 'idxfsobjectversionversions'.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at VaultServiceSQL.VaultSqlSCC.CheckInFileInfo(VaultSqlConn conn, Int32 nRepID, Int64 nObjID, Int64 nFileLength, Int64 nForwardDeltaLength, Int64 nFullDeltaLength, UInt32 nFileCRC, VaultDateTime dtMod, Int64 nTxID, Int32 nTxItem, String strItemPath, String strComment, Boolean bAlreadyModifiedInTx, Int64& nObjVerID, Int64& nObjVersion, Int32& nMergeable, Int32& eol, Byte[]& forwardDeltafileptr, Byte[]& fullDeltafileptr)    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at VaultServiceSQL.VaultSqlSCC.CheckInFileInfo(VaultSqlConn conn, Int32 nRepID, Int64 nObjID, Int64 nFileLength, Int64 nForwardDeltaLength, Int64 nFullDeltaLength, UInt32 nFileCRC, VaultDateTime dtMod, Int64 nTxID, Int32 nTxItem, String strItemPath, String strComment, Boolean bAlreadyModifiedInTx, Int64& nObjVerID, Int64& nObjVersion, Int32& nMergeable, Int32& eol, Byte[]& forwardDeltafileptr, Byte[]& fullDeltafileptr)
----4/10/2008 10:54:44 AM    someuser--machinename.example.com(172.31.19.71)--SSL Disabled	(3d87f56f-dba6-4274-aa99-f6a977dea355) EndTx (Revision - 0) returned: FailDBInsert 
----4/10/2008 10:54:44 AM    someuser--machinename.example.com(172.31.19.71)--SSL Disabled		(3d87f56f-dba6-4274-aa99-f6a977dea355) Rollback: $/Trunk (Development 0.0.0)/Source Code/QSSReportsFIN/frmJ251S1.frm returned: FailDBInsert 
----4/10/2008 10:54:44 AM    someuser--machinename.example.com(172.31.19.71)--SSL Disabled		(3d87f56f-dba6-4274-aa99-f6a977dea355) CheckIn: $/Trunk (Development 0.0.0)/Source Code/QSSReportsFIN/frmJ251S1.frm returned: FailDBInsert 
Thanks,
Tim

OrovilleTim
Posts: 16
Joined: Tue Apr 18, 2006 2:32 pm
Location: Lake Oroville, CA

Post by OrovilleTim » Thu Apr 10, 2008 2:45 pm

Just an update on this. The developer in question reported
In order to get around the error, I renamed the QSSReportsFin Vault file to _frmJ251S1.frm, then added frmJ251S1.frm as a new file. The new one works fine for checkout/in.
Tim

Post Reply