zenkick

My team is encountering a strange problem when trying to checkin or add larger files to VSS 2005 via HTTP or HTTPS. The resulting error is always the dreaded:

There was a failure uploading the URL....

although I don't believe that error indicates what the actual issue is.

I've read what I think to be every post on the subject here and elsewhere on the web, and no situation matches exactly (others are simply an easy timeout misconfig or a permissions issue and nothing can be checked in.)

It's not a permissions issue as all team members can checkin smaller files and large projects that contain small files-- as long as the file being checked in doesn't take more than 30-60 seconds (see below.)

It's not a typical HTTP "timeout" issue that others have had. IIS is configured for 3600 seconds and web.config from the VSS Web Service Application is also configured with a 3600 second timeout. The xml config in VSS's bin also has a 3600 second timeout set, if that matters.

It's not a networking issue. On a different server on the same segment I setup an HTTP upload application in PHP on another OS. I was able to upload 60MB before Apache timed me out (as expected.) (I did not setup a WebDav endpoint on another OS considering in the case of VSS 2005, WebDAV is transported via HTTP.)

It's not a maximum TCP connection issue on the client. We've closed all apps and tried to checkin just a single file (test cases ranged from 6MB to 25MB), which presumably would only open a single HTTP connection to IIS to perform the first phase of the checkin via WebDAV. The above error was consistently reported back.

It's not a configuration issue. All the virtual folders are mapped properly. All the ini files refer to the proper relative folder for uploads and downloads. I've also entered SSAdmin and had it "undo" the HTTP availability in general and per project, confirmed IIS no longer showed the configurations, re-enabled in SSAdmin, and confirmed they were recreated in IIS.

When the error occurs, and we tell VS2005 to not retry, the network connection enters FIN_WAIT and the culprit file continues to upload. If VS2005 is exited, the culprit file still continues to upload. The IIS website containing the VSS Web Service must be restarted to cancel the upload and close the TCP connection. I've confirmed this by monitoring the GUID folders created in the VSSWebUpload folder.

I've used the LAN connection and standard Source Safe Explorer/Client to checkin a larger file (test cases were 6MB to 25MB) into multiple projects over a VPN-- no problem. Checkouts from VS2005 via HTTP reported no errors when retrieving the larger files that were checked in using the classic method.

Any checkin or add via VS2005 (SP1 and non-SP1) to VSS 2005 using HTTP or HTTPs fails with the above error. The error always occurs after 30 seconds and typically before 60 seconds-- it's not consistent.

When turning trace on and reviewing the Application Trace (/SourceSafe/Trace.axd), all status codes are 200. The client displays the error message consistently when either the "PrepareAdd" or "PrepareCheckin" operations run for 30-60 seconds.

Our projects are not out of the ordinary at all. They are pretty typical C#/.NET server-side apps, a couple C++ client apps, and some websites. We've just never had a (larger) file take more than 30 seconds to be checked in or added via HTTP until now.

Thoughts

I plan on opening a support incident (if the forum offers no solution), but wanted to get the details out there in case others encounter this and search for details in the future.



Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

Richard Berg MSFT

Thanks for your extended diagnosis. One more thing to try: can you upload the large file using http://www.alinconstantin.com/download/Winhttp.zip

Based on your report (and the many others you undoubtedly saw in your search) there is probably a bug here. Please open a support case.





Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

zenkick

I've confirmed that winhttp is able to PUT files into the VSSWebUpload folders.

I've also confirmed that the problem exists on a second installation of Sourcesafe on a different physical server.

I'll open a case.




Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

Alin Constantin - MSFT

The timeouts you're talking about are used like this:

- the timeout in the config files is used on the server side by .NET such that aspx/soap request processing is not abandoned until IVSS interface does the necessary operations on the database.

- the timeout in registry is used on the client side such that the client waits until the server gets to process the aspx/soap request.

In this case, it's about something else than aspx requests. During checkin/add, the files are transferred to the server using PUT requests, and only after that the client issue an aspx request to the server (during which the file is taken by IVSS from the upload folder and added to the database).

Unfortunately there is a bug/ommision here... The code that does the PUT requests does not set any timeouts on the opened connection, therefore default values are used by WinInet. (Richard, if you get to look into this bug, the code in vsee\vss\RemoteMSSCCI\FileTransfer.cpp, CFileTransfer::fConnect() should reuse the timeout value from client's registry (if set) and call ::InternetSetOption() setting the INTERNET_OPTION_CONNECT_TIMEOUT, INTERNET_OPTION_RECEIVE_TIMEOUT and INTERNET_OPTION_SEND_TIMEOUT values...)

I haven't tried this, but I think you may be able to workaround the problem by creating dword values in registry. I see here http://support.microsoft.com/kb/q181050/ that receive timeout can be configured for IE, so I suspect that send timeout may be configurable, too, for the whole machine. I'd probably try adding a new value HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\SendTimeout = 300000 (for 5 minutes), and similar for ConnectTimeout, restart the computer and see if it had any effect. (if you try this and it works, please let us know)

Alin





Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

zenkick

Thank you for the suggestion.

Unfortunately, the DWORD additions to the registry did not work. We tried the settings on two different workstations, connecting to two different IIS servers serving VSS.

If you have any other suggestions, I'd love to hear them.

Thank you for your time.




Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

zenkick

A quick additional follow-up:

We are fairly certain that we can duplicate the problem outside of Visual Studio 2005.

By mounting /SourceSafe/Vss_Upload_dbX as a "web folder", and trying to copy a larger file to the new mount, we receive an error: "An error occurred copying some or all of the selected files".

The error occurs after most of the file is apparently PUT (I can hear/see significant drive churning locally when running the tests on my LAN) for the first time. Subsequent attempts with the same file immediately trigger the error.

Mounting the same remote folder via UNC, and copying the same files do not produce the error.







Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

DaleJanssen

Have you any resolution to this problem



Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

zenkick

No. But a case is now opened.




Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

dc_consult

Where is the best place to track the status of this case

It would be nice to see MS produce a fully functional source control solution for a change. Everything else (such as VS) is solid, but source control is lacking. You would think this to be a high priority considering this is the foundation of projects and key for day to day workings in the average dev shop. Even TFS is a bit of a nightmare to get setup (although once setup it does work pretty well).... just my two cents.





Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

Patrick MCormick

A private code fix has now been created to address this issue. At least two customers have confirm that this fix has resolved their issue.

We are working on creating an official hotfix and a KB article at this time.






Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

eheath

Hello.

We are experiencing the same problem on windows 2003 R2.

What is the status of the put timeout hotfix

I would like to test the hotfix.

Thanks,

Erik





Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

Mandaragte

Do you have the kb or the hotfix We are getting this error. I can check in small files but not big ones.



Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

Richard Berg MSFT

It is KB #938607. It may not have been published to all support organizations worldwide yet; if not, you may have to get escalated to U.S. support.




Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

ssaddler2

What's going on with a hotfix for this issue, it's been over 2 months Cannot save files larger than 250k to sharepoint services on SBS 2003. Help, help help!



Re: Visual Studio Source Control and SourceSafe HTTP Checkout - Possible Timeout Anomaly

zenkick

2 months Try over 7. ;-)




Action: Attempted to download data from SourceSafe using the web integration feature in VSS 2005

Result: Receiving time out errors.

Cause: A bug that is now corrected in a hotfix versions.

Details will be published under KB article number 938607.

http://support.microsoft.com/default.aspx scid=kb;EN-US;938607

Resolution: Provided an hotfix that increased the timeout limits.

Closing the case down as a non-decremented bug.