Shadow Folders

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

Moderator: SourceGear

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Shadow Folders

Post by plexus » Wed Jan 02, 2008 2:33 pm

I am trying to set up Shadow Folders (which will be a UNC path), and I have used the forum articl on the special configurations required for UNC shadow folders.

However, when I click on the Shadow Folders link under the repository in question, I get an error stating:

"The Shadow Folder Service was unable to connect to the Vault server. Please enter the login to be used by the Shadow Folder Service."

The username is set to "admin" and is grayed out and can't be changed. When I enter the correct password, I end up with the same message again.

In the vaultshadowfolderservice.txt log file, I have the following error:

1/2/2008 3:26:30 PM <generic>: [<No Name>:6012] Creating directory C:\Documents and Settings\Default User\Local Settings\Application Data\Sourcegear\Client
1/2/2008 3:26:30 PM <generic>: [<No Name>:6012] [System.UnauthorizedAccessException: Access to the path 'C:\Documents and Settings\Default User\Local Settings\Application Data\Sourcegear\Client' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
at VaultClientOperationsLib.LocalSettings.VaultClientConfigReader.MakeAllDirectories(String path)
at VaultClientOperationsLib.LocalSettings.VaultClientConfigReader..ctor(String scope, String strDefLocation)
at VaultClientOperationsLib.LocalSettings.Init(LocalSettingsScope scope, String strDefaultConfigDir)
at VaultClientOperationsLib.ClientInstance.Init(AccessLevelType accessLevel)
at VaultShadowFolder.VaultShadowFolderService.TestServerConnection()]Access to the path 'C:\Documents and Settings\Default User\Local Settings\Application Data\Sourcegear\Client' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
at VaultClientOperationsLib.LocalSettings.VaultClientConfigReader.MakeAllDirectories(String path)
at VaultClientOperationsLib.LocalSettings.VaultClientConfigReader..ctor(String scope, String strDefLocation)
at VaultClientOperationsLib.LocalSettings.Init(LocalSettingsScope scope, String strDefaultConfigDir)
at VaultClientOperationsLib.ClientInstance.Init(AccessLevelType accessLevel)
at VaultShadowFolder.VaultShadowFolderService.TestServerConnection()


We are using version 4.0.5.15922 on Windows 2003 R2 Standard with SP2. IIS is in Worker Process mode. And we are using the default website (no host headers specified) for Vault.

Do you have an idea of what the problem could be?

Thanks,

Pete

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Wed Jan 02, 2008 3:20 pm

What configuration/modification have you made so far? Have you edited the shadow folder web.config file? If you are using Identity impersonation, does that user have a home directory on the Vault Server machine (have you logged into the Vault Server machine as that user?)
Linda Bauer
SourceGear
Technical Support Manager

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Wed Jan 02, 2008 3:53 pm

I did steps a through e in this topic: http://support.sourcegear.com/viewtopic.php?t=188.

For step e, I did not modify the web.config because it said we could either set up a new app pool with a separate identity instead of modifying the web.config. We set up a new app pool running as our new domain account. We have logged on as that user so the user profile folders got created.

The thing that seems strange to me is that the error message is referencing the "Default User" profile.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Wed Jan 02, 2008 4:44 pm

It may be trying to create a cache location.

Does this path exist? C:\Documents and Settings\Default User\Local Settings\Application Data\Sourcegear\Client

If not, can you create it and give the shadow folder service account full control?
Linda Bauer
SourceGear
Technical Support Manager

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Thu Jan 03, 2008 8:24 am

Creating that folder and giving permission to the account got me past that error. I am wondering why you are using the "Default User" profile. I could be wrong, but my understanding is that this profile is what is used as a template for creating the profile when a new user logs on. Why not use a folder in either "All users", or the profile for the account the service runs as?

Also, there is a folder similar located here: C:\Documents and Settings\Default User\Local Settings\Application Data\Sourcegear\Vault_1\Client. Note the "Vault_1" directory.

After getting past the error, I could then get to the page where you configure the shadow folder, but after adding it, nothing seemed to happen. I looked in the vaultshadowfolderservice.txt file and saw the following error:

1/3/2008 9:08:21 AM <generic>: [<No Name>:4244] Shadow Folder could not use the folder, C:\Program Files\SourceGear\Vault Shadow Folder Cache, as a Caching directory. Check security assignments for the path. Access to the path 'C:\Program Files\SourceGear\Vault Shadow Folder Cache\ShadowFolder-4d62bd8c-8817-47a9-97a7-8f3391390928.test' is denied.
1/3/2008 9:08:21 AM <generic>: [<No Name>:4244] Shadow Folder encountered an exception attempting to set the following Default paths as the Cache Location: C:\Program Files\SourceGear\Vault Shadow Folder Cache. The Shadow Folder web.config file must specify the path or the Shadow Folder Process' account must have read/write permissions on one of the Default cache locations.

I gave full permissions for the service account to 'C:\Program Files\SourceGear\Vault Shadow Folder Cache, but now I am continually getting the following error in the log:

1/3/2008 9:13:33 AM <generic>: [<No Name>:5840] Creating directory Sourcegear\Client
1/3/2008 9:13:33 AM <generic>: [<No Name>:5840] Creating directory Sourcegear
1/3/2008 9:13:33 AM <generic>: [<No Name>:5840] Creating directory
1/3/2008 9:13:33 AM <generic>: [<No Name>:5840] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.

No files are being placed in the shadow folder location. This error is continuing to be appended to the log. How should I go about stopping this? I am hesitant to just delete the shadow folder settings as I am concerned that it will corrupt the DB.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Thu Jan 03, 2008 2:42 pm

Try to set the shadow folder cache path in the Shadow folder web.config path with this:

<add key="shadowfolder_cachepath" value="c:\Program
Files\Sourcegear\Vault Shadow Folder Cache" />
Linda Bauer
SourceGear
Technical Support Manager

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Thu Jan 03, 2008 2:46 pm

OK. But how should I resolve the issue of it continuously sending errors to the log? It is like it is trying to do something but erroring out. Is it safe to remove the shadow folder settings, then make this change? Because it seems like it is in the middle of doing something, I didn't want to delete the settings and cause further problems.

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Thu Jan 03, 2008 6:51 pm

OK, just deleting the shadow folder stops the log file from growing with the errors. However, making the change to the web.config did not fix the problem. When I add a new shadow folder, the log file contains the following:

1/3/2008 7:45:52 PM <generic>: [<No Name>:5740] GetEntryAssembly() returned null; not logging assembly name
1/3/2008 7:45:52 PM <generic>: [<No Name>:2588] Starting Shadow Folder Thread for repository 3.
1/3/2008 7:45:52 PM <generic>: [<No Name>:2588] Shadow Folder Thread for repository 3 started.
1/3/2008 7:45:52 PM <generic>: [<No Name>:4920] Shadow Folder is using the folder, C:\WINDOWS\TEMP\, as a TEMP directory.
1/3/2008 7:45:53 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:45:53 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:45:53 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:45:53 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:45:55 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:45:55 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:45:55 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:45:55 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:45:57 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:45:57 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:45:57 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:45:57 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:45:59 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:45:59 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:45:59 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:45:59 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:01 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:01 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:01 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:01 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:03 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:03 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:03 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:03 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:07 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:07 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:07 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:07 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:09 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:09 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:09 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:09 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:11 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:11 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:11 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:11 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:13 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:13 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:13 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:13 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.
1/3/2008 7:46:14 PM <generic>: [<No Name>:1648] GetEntryAssembly() returned null; not logging assembly name
1/3/2008 7:46:15 PM <generic>: [<No Name>:5536] SimpleLogger finalized


The lines:

1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Creating directory Sourcegear\Client
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Creating directory Sourcegear
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Creating directory
1/3/2008 7:46:05 PM <generic>: [<No Name>:4920] Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form.

Continually get appended at the rate of about once every 2 seconds until the shadow folder is deleted.

The paths I am using are like the following:

Repository folder: /$Repository_name
Shadow Directory: \\Server\Inetpub\wwwroot

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Thu Jan 03, 2008 9:49 pm

We'll try to reproduce your setup (using an app pool) to see if that could be part of the problem.
Linda Bauer
SourceGear
Technical Support Manager

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Fri Jan 04, 2008 8:15 am

I am not dead set on using the App Pool method. I just chose that method because the documentation said we could choose either. If you think setting the impersonation in the web.config would fix this, I would be willing to try it.

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Fri Jan 04, 2008 4:22 pm

Using the App Pool should work.

Is this just a typo:
/$Repository_name

It should be $/Repository_name

I'll see if I can get some more ideas from our developers.
Linda Bauer
SourceGear
Technical Support Manager

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Mon Jan 07, 2008 7:39 am

Have you guys made any progress on reproducing this issue?

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Mon Jan 07, 2008 7:47 am

Sorry, yes, that was a typo.

plexus
Posts: 27
Joined: Thu Dec 13, 2007 12:34 pm

Post by plexus » Mon Jan 07, 2008 7:52 am

I just tried setting the shadow folder to a local directory on the Vault server, and I get the same results as before. To rule out permissions, I set the folder to allow Everyone full control.

What is this error indicating?:

Shadow Folder could not initialize the Client Instance for Repository ID 3. The path is not of a legal form

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Mon Jan 07, 2008 12:17 pm

I'd suggest trying again, this time modifying the web.config to use impersonation, instead of the app pool.
Linda Bauer
SourceGear
Technical Support Manager

Post Reply