We are currently using Version 3.1.1 (3506) but we had the same problem with version 3.0.7.
Whenever any of us using vault client attempt to label a folder in Vault we get the above error. This happens only on a folder within vault that has files shared with other another folder. Subfolders between the two folders are named identically. However the top level folders containing the folders containing the shared files are uniquely named. We shared the files between the folders indivicually, we did not share the folders.
Note that even after we setup up this structure we were able to label, it is only recently that we are not able to label. Also, other folders which do not have shared files we are able to label.
Please let me know what we need to do to fix this problem. It is very important that we be able to label are internal, alpha, beta, and actual releases.
The sgvault.log file had the following information on a failed label attempt:
----9/6/2005 5:17:32 PM Agisser--EESH(192.168.1.179)--SSL Disabled System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 'unique_tblfsobjectlabelviews_names'. Cannot insert duplicate key in object 'tblfsobjectlabelviews'.
The statement has been terminated.
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at VaultServiceSQL.VaultSqlSCC.AddLabel(VaultSqlConn conn, Int32 nRepID, Int32 nUserID, VaultLabelItem vLabel, Int64& nLabelID, Int64& nObjID, String& strExistingRootPath) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at VaultServiceSQL.VaultSqlSCC.AddLabel(VaultSqlConn conn, Int32 nRepID, Int32 nUserID, VaultLabelItem vLabel, Int64& nLabelID, Int64& nObjID, String& strExistingRootPath)
----9/6/2005 5:17:32 PM Agisser--EESH(192.168.1.179)--SSL Disabled AddLabel returned: FailDBInsert
Label error: A database error has occured (FailDBInsert)
Moderator: SourceGear
-
- Posts: 5
- Joined: Wed Aug 11, 2004 8:57 am
- Location: Austin
-
- Posts: 5
- Joined: Wed Aug 11, 2004 8:57 am
- Location: Austin
That didn't work. I am still unable to label the folder. I have narrowed down the problem to a single folder that has one label that is inherited from a higher level folder. The higher level folder and other subfolders do not exhibit this problem. Files within the folder that has the labeling problem do not exhibit the problem.
Furthermore, I cannot delete the higher level label as it is needed by another engineer. However we absolutely need to be able to label this folder. Please respond soon and tell me how to resolve this.
I have been looking at the SQLtables and used profiling to isolate the label that had the unique key violation (i.e. what label it thinks it has the same unique id as the one I am trying to create ).
Furthermore, I cannot delete the higher level label as it is needed by another engineer. However we absolutely need to be able to label this folder. Please respond soon and tell me how to resolve this.
I have been looking at the SQLtables and used profiling to isolate the label that had the unique key violation (i.e. what label it thinks it has the same unique id as the one I am trying to create ).
Can you gather some information about your repository in a Query Tool, save the results in Tab Delimited format, and send the results in for inspection? (Click the email button below to contact me directly).
1) We'll need to determine the repository causing the issue. From a Query Tool, run. Make note of the repid for the repository where you are applying the label.
2) Next using the repid from above, run t7he following query:
1) We'll need to determine the repository causing the issue. From a Query Tool, run
Code: Select all
SELECT repid, name FROM sgvault.dbo.tblrepositories
2) Next using the repid from above, run t7he following query:
Code: Select all
DECLARE @repid [int];
SELECT @repid = <INT_FROM_STEP_1>
DECLARE @@t TABLE
( treelevel int not null,
pph int not null,
objverid bigint not null,
objid bigint not null,
objversion bigint not null,
name nvarchar(256) not null,
objprops smallint not null,
pinnedfromobjverid bigint not null,
fph int not null,
fullpath nvarchar(1024) null,
primary key (treelevel, pph, fph, objverid)
)
INSERT INTO @@t (treelevel, pph, objverid, objid, objversion, name,
objprops, pinnedfromobjverid, fph) SELECT treelevel, parentpathhash,
objverid, objid, objversion, LOWER(name), objprops, pinnedfromobjverid,
fullpathhash FROM sgvault.dbo.ufngettreestructure(@repid, -1, default)
DECLARE @@treelevel int, @@rowsaffected int
SET @@treelevel = 0
UPDATE @@t SET fullpath = name WHERE treelevel = @@treelevel SET
@@rowsaffected = @@ROWCOUNT WHILE ( @@rowsaffected > 0 ) BEGIN
UPDATE t SET t.fullpath = prev.fullpath + N'/' + t.name
FROM @@t t INNER JOIN
@@t prev ON (prev.treelevel = @@treelevel) AND
(prev.fph = t.pph)
WHERE (t.treelevel = (@@treelevel + 1))
SELECT @@rowsaffected = @@ROWCOUNT, @@treelevel = @@treelevel +
1 END -- WHILE
SELECT * FROM @@t ORDER BY treelevel, pph, name;
Jeff Clausius
SourceGear
SourceGear