Check out / in problems

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

Moderator: SourceGear

Post Reply
kasti
Posts: 108
Joined: Tue Apr 20, 2004 4:21 am
Location: Austria

Check out / in problems

Post by kasti » Fri Sep 17, 2004 8:11 am

Hi,

I have got the following problem. When I check out a certain files in the GUI client, they are not shown as being checked out. The message pane shows the following:

[2004-09-17 15:44:08] Checking out file $/Framework/CppFW/dev/comp/SDDLib/source/SDD.c
[2004-09-17 15:44:08] Checked out file $/Framework/CppFW/dev/comp/SDDLib/source/SDD.c

I can not do an undo check out/check in (greyed out). Checking out again tells me that the file is already checked out. In the admin client, I can do the undo checkout however.

I have deleted the cache directories but it did not help. Tried from other client PC with the same problem. Other files in the repository work fine.

Any ideas?

Thanks,
Herbert.

kasti
Posts: 108
Joined: Tue Apr 20, 2004 4:21 am
Location: Austria

Post by kasti » Fri Sep 17, 2004 8:13 am

Sorry, Vault version is 2.0.6, but the same problem with 2.0.5.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Fri Sep 17, 2004 9:02 am

Did you restart the Vault GUI client anytime within this process? If not, does restarting the client show the correct checkouts?
Jeff Clausius
SourceGear

kasti
Posts: 108
Joined: Tue Apr 20, 2004 4:21 am
Location: Austria

Post by kasti » Sun Sep 19, 2004 11:19 pm

Nope, restarting does not help. Even if I look from another client machine with another user logon, the file is not shown as checked out.

Also, there is nothing in the server log that would suggest that anything is wrong.

Some additional info:

Client using XP, Framework 1.0 and 1.1 installed.

.NET FW 1.0 sp3 and .NET FW 1.1 sp1 are NOT installed.

Ciao,
Herbert.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Mon Sep 20, 2004 7:48 am

Maybe there is something wrong with the checkout request itself.

Can you place the server's log in "debug" mode from the Admin Tool, restart the server ( if required ), and try the checkout again.

The server log should contain both the entry point and exit point of the checkout web method. Let's see what the log records for the operation.
Jeff Clausius
SourceGear

Guest

Post by Guest » Tue Sep 21, 2004 4:28 am

I think checkout on server is fine:

Here checking out the first time:

----9/21/2004 11:52:37 AM XXXXXXX--SSL Disabled
Getting repository Structure.
----9/21/2004 11:52:37 AM XXXXXXX--SSL Disabled
GetRepositoryStructure returned: Success
----9/21/2004 11:52:37 AM XXXXXXX--SSL Disabled
Getting list of checkout changes.
----9/21/2004 11:52:37 AM XXXXXXX--SSL Disabled
GetCheckOutListChanges returned: Success
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
Checking out Files
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
Getting list of checkout changes.
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
GetCheckOutListChanges returned: Success
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
Getting repository Structure.
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
GetRepositoryStructure returned: Success
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
Getting list of checkout changes.
----9/21/2004 11:52:38 AM XXXXXXX--SSL Disabled
GetCheckOutListChanges returned: Success

and this is the second time, where it tells me file is already checked out:

----9/21/2004 11:54:00 AM XXXXXXX--SSL Disabled
Getting repository Structure.
----9/21/2004 11:54:00 AM XXXXXXX--SSL Disabled
GetRepositoryStructure returned: Success
----9/21/2004 11:54:00 AM XXXXXXX--SSL Disabled
Getting list of checkout changes.
----9/21/2004 11:54:00 AM XXXXXXX--SSL Disabled
GetCheckOutListChanges returned: Success
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
Checking out Files
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
Getting list of checkout changes.
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
GetCheckOutListChanges returned: Success
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
Getting repository Structure.
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
GetRepositoryStructure returned: Success
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
Getting list of checkout changes.
----9/21/2004 11:54:01 AM XXXXXXX--SSL Disabled
GetCheckOutListChanges returned: Success

Here is also the gui client log for the first "successful" checkout:
2004-09-21 12:24:26 <mutex>: [GUIClientWorkerThread:1748] Took mutex 968
2004-09-21 12:24:26 <mutex>: [GUIClientWorkerThread:1748] Released mutex 968
2004-09-21 12:24:26 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1028
2004-09-21 12:24:26 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1028
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Refresh started
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] delta passed in was null, retrieving one
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] calling GetRepositoryStructure(2, 873, -1, ref, 2004-09-17 12:22:10)
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] GetRepositoryStructure started
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Calling client service GetRepositoryStructure(2, 873, -1, 2004-09-17 12:22:10, ref, ref, ref)
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Client service GetRepositoryStructure returned: dtLatestCheck 2004-09-17 12:22:10, nReturnDestRevision 873, rd not null True
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] GetRepositoryStructure finished
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1048
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1048
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] GetRepositoryStructure returned: returnedRevision 873, newLatestDate 2004-09-17 12:22:10, delta not null: True
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] RefreshCheckOutColl started
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] Calling GetCheckOutListChanges(2, out, ref, ref, 2004-09-21 12:26:39, ref)
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] GetCheckOutListChanges returned: completeListReturned False, newLatestDate 2004-09-21 12:26:39
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] New items:
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] <null>
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] Release items:
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] <null>
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] newLatestDate is same as _LastCheckOutListGetTime, returning with no update
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] RefreshCheckOutColl finished
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Calling Repository.Update with delta
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Repository.Update finished, calling SaveRepositoryIfNothingOnDisk()
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1032
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] SaveIfNothingOnDisk: not saving
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1032
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Refreshing working folder associations from disk
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1036
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1036
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Refreshing all change set items without notify
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Took mutex 968
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Released mutex 968
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1028
2004-09-21 12:24:29 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1028
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Calling UpdateKnownChanges_RefreshKnown with notify
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Calling NotifyTreeStructureChanged
2004-09-21 12:24:29 <refresh>: [GUIClientWorkerThread:1748] Refresh finished
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] RefreshCheckOutColl started
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] Calling GetCheckOutListChanges(2, out, ref, ref, 2004-09-21 12:26:39, ref)
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] GetCheckOutListChanges returned: completeListReturned True, newLatestDate 2004-09-21 12:27:05
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] New items:
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] (0 items)
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] Release items:
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] <null>
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] In-memory authoritative check out list (after update):
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] (0 items)
2004-09-21 12:24:29 <checkoutlist>: [GUIClientWorkerThread:1748] RefreshCheckOutColl finished
2004-09-21 12:24:30 <get>: [GUIClientWorkerThread:1748] ProcessGetFileRequests started
2004-09-21 12:24:30 <get>: [GUIClientWorkerThread:1748] ProcessGetFileRequests finished
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Refresh started
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] delta passed in was null, retrieving one
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] calling GetRepositoryStructure(2, 873, -1, ref, 2004-09-17 12:22:10)
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] GetRepositoryStructure started
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Calling client service GetRepositoryStructure(2, 873, -1, 2004-09-17 12:22:10, ref, ref, ref)
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Client service GetRepositoryStructure returned: dtLatestCheck 2004-09-17 12:22:10, nReturnDestRevision 873, rd not null True
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] GetRepositoryStructure finished
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1048
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1048
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] GetRepositoryStructure returned: returnedRevision 873, newLatestDate 2004-09-17 12:22:10, delta not null: True
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] RefreshCheckOutColl started
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] Calling GetCheckOutListChanges(2, out, ref, ref, 2004-09-21 12:27:05, ref)
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] GetCheckOutListChanges returned: completeListReturned False, newLatestDate 2004-09-21 12:27:05
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] New items:
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] <null>
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] Release items:
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] <null>
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] newLatestDate is same as _LastCheckOutListGetTime, returning with no update
2004-09-21 12:24:30 <checkoutlist>: [GUIClientWorkerThread:1748] RefreshCheckOutColl finished
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Calling Repository.Update with delta
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Repository.Update finished, calling SaveRepositoryIfNothingOnDisk()
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1032
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] SaveIfNothingOnDisk: not saving
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1032
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Refreshing working folder associations from disk
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1036
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1036
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Refreshing all change set items without notify
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 968
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 968
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1028
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1028
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Calling UpdateKnownChanges_RefreshKnown with notify
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Calling NotifyTreeStructureChanged
2004-09-21 12:24:30 <refresh>: [GUIClientWorkerThread:1748] Refresh finished
2004-09-21 12:24:30 <statussearch>: [GUIClientWorkerThread:1748] StatusSearchScan not running because is disabled or not foreground
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 968
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 968
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Took mutex 1028
2004-09-21 12:24:30 <mutex>: [GUIClientWorkerThread:1748] Released mutex 1028


Thanks,
Herbert.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Tue Sep 21, 2004 7:27 am

Herbert:

Since the server / client clocks may vary, I can't necessarily synchronize the times between the two logs. I'm making the assumption, the snippets you posted are accurate.

On the assumption the log files correspond to the failure, a first glance makes it appear as if the last checkout change is not being updated correctly.

A couple of more questions here.
- How many users are using Vault?
- If more than one, do they all have this same problem?
Jeff Clausius
SourceGear

Guest

Post by Guest » Wed Sep 22, 2004 3:14 am

We have a 10 user license right now (ugrading to 60 if we get all issues sorted out ;-) ).

In this particular project, only 3 different users ever checked out/in.

However, no matter who checks out now, the problem is always the same.

Checking out on different machines also makes no difference.

As a workaround now, we use the CVS style as we can not check in in VSS Style.


Bye,
Herbert.

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Wed Sep 22, 2004 7:54 am

OK. That answers part of my question.

Let's see if I can get the last piece of this puzzle. I'll need you to run some SQL queries when you are the only one accessing the database. If you need more instruction here, please let me know.

Note - it is important that you ensure you are the only one accessing the system.

1) From a query tool, examine the repository's lock date

Code: Select all

SELECT repid, name, lastlockdate FROM sgvault.dbo.tblrepositories -- WHERE repid = REPID_GOES_HERE
If you like, you can uncomment the WHERE clause when you determine the correct repid. What is the last lock date for the repository?

2) Start up a Vault Client, and log in. Re-run Step 1. What is the last lock date for the repository?

3) Check out a file. Re-run Step 1. What is the last lock date for the repository?

4) Undo the checkout. Re-run Step 1. What is the last lock date for the repository?
Jeff Clausius
SourceGear

jclausius
Posts: 3706
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Post by jclausius » Mon Sep 27, 2004 8:35 pm

A quick update here.

This ended up being a problem related to the check out list and security rights. If the repository path to an object is set only by group security assignments, the "most permissive" right is supposed to be used to allow read, checkin, or checkout to a tree.

The server piece which calculates which files are checked out was being too strict, and not returning the checkout information for a given user.

I've logged a new bug, currently scheduled for fixing Vault 2.1.
Jeff Clausius
SourceGear

Post Reply