Couple install questions

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

Moderator: SourceGear

Patrick

Couple install questions

Post by Patrick » Fri Apr 01, 2005 5:05 pm

There's one part of the install process I am unclear on -
You will decide which user/login will have access to the Vault virtual directory. Your choices are the ASPNET or Network Service account (Win2003) (default), the machine account, or you can create a custom account. In most cases you will pick the account that the .Net Process model is using.
It was not clear to me which of the 3 options to select (machine, system, or custom).

To me, it seemed like System was the way to go, and I selected that. Now however, when I try to modify server options using the admin tool, I get errors like
Access to the path "C:\Inetpub\wwwroot\VaultService\web.config" is denied.
Which sounds to me like the permissions to the vault service phsyical directory have not been set right. Is that a correct interpretation of what is going on? And how would I fix it? (I think now it needs to be set to 'machine') Would I need to reinstall the server, or is there a setting I can change?

Thank you

(Also, how can you tell if you have IIS 6, rather than 5, installed?)

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

Re: Couple install questions

Post by jclausius » Fri Apr 01, 2005 5:13 pm

Patrick wrote:It was not clear to me which of the 3 options to select (machine, system, or custom).

To me, it seemed like System was the way to go, and I selected that.
By default, IIS / ASP.Net will be running under the ASPNet Process account. Unless you modified any ASP.Net / IIS settings, the first option of ASP Net Process would be the one to use.
Patrick wrote:Which sounds to me like the permissions to the vault service phsyical directory have not been set right. Is that a correct interpretation of what is going on? And how would I fix it? (I think now it needs to be set to 'machine') Would I need to reinstall the server, or is there a setting I can change?
You are on the right track. The incorrect permissions were set on the folders during installation. Unfortunately, there is no simple fix for this. My suggestion would be to uninstall the Vault server (keep the database if you need to preserve any data), and then re-install the Vault Server(keep the database to preserve data), and use the ASP.Net process account option.
Patrick wrote:(Also, how can you tell if you have IIS 6, rather than 5, installed?)
Since you are on Windows 2003, you will be running IIS 6.0.
Jeff Clausius
SourceGear

Patrick

Post by Patrick » Mon Apr 04, 2005 9:37 am

Thakn you, re-installing and saving the database seemed to fix the problem without any adverse side affects.

I'm playing around with creating and managing repositories, and during the course of this I attempted to add a large file (around 300 mb in size). The upload failed. A 150 mb file was, however, successfully uploaded, but only after checking the chunked encoding box under tools -> options -> network settings.

The error message appears as follows.
Please verify your network settings using the Options dialog under the Tools menu in the Vault GUI Client.
The specific error was "The server returned an unknown error header: VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown."
An exception was encountered during the transaction. Exception: The server returned an unknown error header: VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown. at VaultClientOperationsLib.ClientInstance.UploadItem(ChangeSetItem item, String txID, Int64 totalBytes, Int64& bytesWritten, Byte[]& streamBuffer, Int32& bytesWrittenThisFile, Boolean bIsImport)
at VaultClientOperationsLib.ClientInstance.Commit(ChangeSetItemColl givenItems, Boolean keepCheckedOut, Boolean removeLocalCopy, Boolean bIsImport, DateTime dateImport, Int32 nUserIDImport, Int64
I'm unsure if this is a vault problem that can be remedied by use of the admin tool from the server end, or actually a problem with the way the server itself is set up. Would modifying the buffer size and iis file upload limit in the admin tool be likely to help successfully upload such a large file?

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

Post by jclausius » Mon Apr 04, 2005 9:53 am

You should leave the database buffer size. However, by default, the Vault server only allows adding files around 100 MB. Increasing this value in the Admin Tool should be enough to allow you to add the 300 MB file.

HTH
Jeff Clausius
SourceGear

Patrick

Post by Patrick » Mon Apr 04, 2005 12:10 pm

Ah, thank you. I have increased the file limit, restarted client and server.

I can upload a 400 mb databse file (.mdb) but cannot upload a 300 mb .cab file. (I can upload smaller .cab files). I'm not quite sure what would cause the larger file to upload successfully, but the smaller to generate the error message above.

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

Post by jclausius » Mon Apr 04, 2005 12:19 pm

How much memory is in your Vault server? Unfortunately, IIS is not very memory friendly when it uploads file a file, so the memory issue could be related to this.

Although the Vault server shunts files to disk, IIS insists on keeping files in memory. Did you try to upload the 300 MB .cab file first? If not, you may want to recycle the server, and then try the upload, so the working set size of the server has not yet had time to grow.
Jeff Clausius
SourceGear

dan
Posts: 2448
Joined: Wed Dec 17, 2003 5:03 pm
Location: SourceGear
Contact:

Post by dan » Mon Apr 04, 2005 12:25 pm

Also, note that a Vault will compress everything, include binary files, so it may be that the .mdb file compressed to a smaller size than the .cab file, and thus was able to be transferred.

Also, IIS will kill off a process that exceeds a certain % of actual RAM, so even if you have plenty of RAM, it might exceed that magic %, and kill the Vault web service. I believe this is adjustable somewhere in IIS.

Patrick

Post by Patrick » Tue Apr 05, 2005 9:03 am

I put the log file on debug mode and looked at the error message generated when I tried to upload the file
VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown.
The server has 2gb of RAM, so I'm not sure whether it's a lack of total memory problem, or just the problem you mentioned with IIS killing off a process. Any good sites you know of that might explain how to change that configuration in IIS?

Thanks.

Patrick

Post by Patrick » Mon Apr 18, 2005 11:23 am

Update: I have checked in IIS and made sure that the process and bandwidth throttling are not enabled.

I still cannot upload this file (the max file size is well above the size of the file I am trying to upload).

I have run the task manager and monitored peak memory usage.
Aspnet and sql server combined are using less than 800MB at peak. Nothing else of note is running. The server has 2G of memory.

Virtual memory peak was about 300 mb and is far below the limit.

I even installed CVS on the same machine for a while to see if I could upload and download the file using CVS - I could.

This leads me to think it is a Vault Problem. Any ideas on how to resolve this? We'd like to use Vault over CVS, but this clearly won't work if it can't handle the occasional large file like we need it to.

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

Post by jclausius » Mon Apr 18, 2005 11:58 am

What OS/IIS version are you using? Also, is there any information in the Vault server's log file related to any type of problem?
Jeff Clausius
SourceGear

Patrick

Post by Patrick » Mon Apr 18, 2005 12:22 pm

Using IIS 5, OS Windows Server 2000 (sp4).

The sgvault file (which is the log file, right?) gives the following information about an attempted upload
Receiving an uploaded file.
----4/18/2005 1:13:08 PM VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown.
----4/18/2005 1:13:08 PM Receiving an uploaded file.
----4/18/2005 1:17:33 PM VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown.
----4/18/2005 1:17:33 PM Receiving an uploaded file.
----4/18/2005 1:21:54 PM VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown.
----4/18/2005 1:21:54 PM Ending transaction
----4/18/2005 1:21:54 PM EndTxSuccess
The error thrown in the GUI itself is still the same as quoted above in the thread.

The file is about 700 MB. The max file size in the admin tool on the server is 1024000 atm. The database buffer size (which i don't think I have changed) is 512.

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

Post by jclausius » Mon Apr 18, 2005 1:44 pm

Is there anything in the Event Viewer related to killing off the ASP.Net process?


In any case, here is one possible solution - Edit the ASP.Net file - %windir%\Microsoft.NET\Framework\v1.1.4322\config\machine.config

Find the <processModel> xml element. It should have a memoryLimit attribute. What is the value of this attribute? 60? If so, set it to something like 90 - 95, and save the machine.config file.

I don't believe it is necessary, but you may want to re-cycle IIS (iisreset) to ensure IIS is using the new setting. Once this has completed, try to upload the file.
Jeff Clausius
SourceGear

Guest

Post by Guest » Tue Apr 19, 2005 9:29 am

Thank you for the help. The limit under process model was indeed 60, I have changed it to 95 and restarted the server.

Now I get a slightly different error message when trying to add the large file in question to an existing repository.
[4/19/2005 11:10:52 AM] Upload for item $/test.iso failed too many times, aborting transaction.
Please verify your network settings using the Options dialog under the Tools menu in the Vault GUI Client.
The specific error was "The request was aborted: The request was canceled."
An exception was encountered during the transaction. Exception: The request was aborted: The request was canceled. at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.GetResponse()
at VaultClientOperationsLib.ClientInstance.UploadItem(ChangeSetItem item, String txID, Int64 totalBytes, Int64& bytesWritten, Byte[]& streamBuffer, Int32& bytesWrittenThisFile, Boolean bIsImport)
at VaultClientOperationsLib.ClientInstance.Commit(ChangeSetItemColl givenItems, Boolean keepCheckedOut, Boolean removeLocalCopy, Boolean bIsImport, DateTime dateImport, Int32 nUserIDImport, Int64& nRevID)
[4/19/2005 11:10:53 AM] Ending the transaction
[4/19/2005 11:10:54 AM] Transaction failed
Here is the relevent portion of the log file
----4/19/2005 10:59:32 AM Login
----4/19/2005 10:59:32 AM GetUserList returned: Success
----4/19/2005 10:59:32 AM GetUserOptions returned: Success
----4/19/2005 10:59:33 AM GetRepositories returned: Success
----4/19/2005 10:59:33 AM Getting repository Structure.
----4/19/2005 10:59:33 AM VaultServiceAPI::GetRepositoryTreeDelta() UserID:2 RepID:3 Base:80 Target:80 Calling VaultRepUtil.DiffRepTrees() - in-memory tree diff.
----4/19/2005 10:59:33 AM GetRepositoryStructure returned: Success
----4/19/2005 10:59:33 AM Getting list of checkout changes.
----4/19/2005 10:59:33 AM GetCheckOutListChanges returned: Success
----4/19/2005 10:59:33 AM GetUserEmailOptions returned Success
----4/19/2005 10:59:33 AM ListWatchers returned Success
----4/19/2005 10:59:33 AM ListCloakedObjects returned: Success
----4/19/2005 10:59:33 AM GetRepositoryOptions returned: Success
----4/19/2005 10:59:33 AM GetRepositories returned: Success
----4/19/2005 10:59:48 AM BeginTx beginning transaction
----4/19/2005 10:59:48 AM BeginTx returned: Success
----4/19/2005 10:59:48 AM VaultLib.VaultRequestAddFile returned: Success
----4/19/2005 11:10:54 AM Ending transaction
----4/19/2005 11:10:54 AM EndTxSuccess
I'm having difficulty reconciling the two statements :D

Also, is there a way to add files to respository from the server itself without also having a copy of the client installed there?

And how would I check and access the Event viewer? Thanks.

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

Post by jclausius » Tue Apr 19, 2005 9:36 am

Are you uploading the .iso file directly on the Vault server itself? If not, have you tried adding the file directly on the server?

If you are using both client / server, is there a proxy server or firewall in between your client and server? If so, is this possibly related a chunked encoding problem? (See your client networking options related to using chunked encoding)
Jeff Clausius
SourceGear

Guest

Post by Guest » Tue Apr 19, 2005 12:29 pm

I've looked at the event viewer on the server end and don't really see anything that stands out as connected to Vault failing to add the file correctly. Any thing specific I should be looking for?

There is not currently a proxy server or firewall running between my client and the server.

I'm actually attempting to upload the file two different ways
(a) From the vault client installed on a workstation
(b) From the vault client installed on the server machine itself

Neither has worked so far.

Checking the 'chunked encoding' box does not effect whether or not the file uploads successfully (it still fails) but does generate different error messages.

From the vault client installed on the server, attempting to upload with chunked encoding checked gives the system.outOfMemory execption.

With it UNchecked, I get a timeout exception.

From the vault client installed on different machine, with the chunked encoding checked I get
[4/19/2005 2:27:11 PM] Upload for item $/test.iso failed too many times, aborting transaction.
Please verify your network settings using the Options dialog under the Tools menu in the Vault GUI Client.
The specific error was "The server returned an unknown error header: VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown."
An exception was encountered during the transaction. Exception: The server returned an unknown error header: VaultFileUpload.aspx encountered: an exception while opening up the request's input stream: Exception of type System.OutOfMemoryException was thrown. at VaultClientOperationsLib.ClientInstance.UploadItem(ChangeSetItem item, String txID, Int64 totalBytes, Int64& bytesWritten, Byte[]& streamBuffer, Int32& bytesWrittenThisFile, Boolean bIsImport)
at VaultClientOperationsLib.ClientInstance.Commit(ChangeSetItemColl givenItems, Boolean keepCheckedOut, Boolean removeLocalCopy, Boolean bIsImport, DateTime dateImport, Int32 nUserIDImport, Int64& nRevID)
[4/19/2005 2:27:11 PM] Ending the transaction
[4/19/2005 2:27:11 PM] Transaction failed
With it UNchecked I get
[4/19/2005 2:07:40 PM] Upload for item $/test.iso failed too many times, aborting transaction.
Please verify your network settings using the Options dialog under the Tools menu in the Vault GUI Client.
The specific error was "The underlying connection was closed: The request was canceled."
An exception was encountered during the transaction. Exception: The underlying connection was closed: The request was canceled. at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.GetResponse()
at VaultClientOperationsLib.ClientInstance.UploadItem(ChangeSetItem item, String txID, Int64 totalBytes, Int64& bytesWritten, Byte[]& streamBuffer, Int32& bytesWrittenThisFile, Boolean bIsImport)
at VaultClientOperationsLib.ClientInstance.Commit(ChangeSetItemColl givenItems, Boolean keepCheckedOut, Boolean removeLocalCopy, Boolean bIsImport, DateTime dateImport, Int32 nUserIDImport, Int64& nRevID)
[4/19/2005 2:07:41 PM] Ending the transaction
[4/19/2005 2:07:43 PM] Transaction failed
Again, every other (smaller) file has worked great! Having a repository with thousands of small files has also worked well. Everything's been behaving beautifully except for trying to put in a single big file :lol:

Post Reply