Rollback Failure

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Rollback Failure

Post by dwayne_davis » Thu Jul 08, 2004 6:31 pm

I'm trying to rollback a file to the second most recent version. I get the file history, select the version, right-click and select 'Rollback'. I get an error dialog with the following message:

A failure occured during the streaming of the file.

I checked the server log and there is nothing in it from the last 5 hours.

Any ideas? Thanks in advance.

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

Post by jclausius » Fri Jul 09, 2004 6:37 am

dwayne_davis:

The server will throw an exception with FailFileStreamError when it cannot either:

1) Create a temp file in the working folder. The Server's working folder is specified in Vault.Config - default is %systemroot%\temp. Double check this for :
- Disk space
- Too many files within the directory
- Permissions (if NTFS) for ASP.Net's process identity account

2) Create a delta between the latest version and the version to which you wish to rollback. You can test this with "View". Show history on the file, and then invoke the "View" action on the version. Does this retrieve the file.


You may want to also check your Windows Event (Application / System) Viewer. There may be an indication of a problem encountered by the .Net runtime.
Jeff Clausius
SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 9:38 am

The temp directory seems to be fine. I came in this morning and immediately tried to rollback - with no success. Then I tried viewing the previous version and that worked fine. I also checked the Application event log, but there was nothing in it. Disk space is fine, the number of files in the temp directory is fine.

I logged onto the server and checked the temp directory; there were three .VLT files from today in there. Interestingly enough, the latest version of the offending file is version 8, of the 3 files in the temp directory (for today), one is version 8, one is version 1 (both text files, the file in the repository is a C# file), and the third is a binary file with some garbage but enough textual data to identify that it is supposed to some version of this file.

Would it be helpful if you had copies of these files? If so I can email them to you (I'd rather not post them on a public forum), just give me an address to send them to.

-- edited to add data about event log and disk space --

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

Post by jclausius » Fri Jul 09, 2004 10:22 am

A couple of questions:

1) Is your SQL Server running on the same machine as the Vault Server? For instance - http://support.sourcegear.com/viewtopic.php?t=431. This problem turned out to be a network configuration issue between the Vault Server and SQL Server which were installed on different machines.

2) Can you make one more attempt, and send me the sgvault.log file? (click the email button below this post to send me a message)
A) Set the server's log to Debug mode within the Admin tool. This will require an IIS restart.
B) Retry the rollback.

For any given error during a transaction the server will log some sort of problem. You said nothing was logged for the last 5 hours. Is it possible you were looking in a different directory or the wrong file?

This raises one other question. Usually the log file and working directories are on the same disk drive. It is possible that due to some sort of problem with the drive (permissions, space, etc) that the Server could not write to the log file as well as affected the Server's attempt to create the temp files required for Rollback.
Jeff Clausius
SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 12:44 pm

1) Sql Server is on a different machine. Permissions should be okay because everything else works fine (even rollback for a different file).

2) sgvault.log file still has nothing in it - I'll try again in a bit (I have a meeting to go to) and send you the log file. I set it to Debug mode and bounced the server, but it's still not logging. Does it not always flush the log perhaps?

The directory should be fine; any other operation, even rollback, works fine.

I did notice this bit of data in the client messages:

[7/9/2004 11:38:55 AM] Preparing data to begin transaction
[7/9/2004 11:38:55 AM] Beginning transaction
[7/9/2004 11:38:55 AM] Rollback $/NBG/Source/Igt/Nbg/Common/CBalance.cs
[7/9/2004 11:38:55 AM] Ending the transaction
[7/9/2004 11:38:57 AM] Server unavailable for transaction end
[7/9/2004 11:38:57 AM] Transaction failed
[7/9/2004 11:38:58 AM] Item $/NBG/Source/Igt/Nbg/Common/CBalance.cs caused the transaction to fail: A failure occured during the streaming of the file.
[7/9/2004 11:38:58 AM] Transaction failed

Note that it says the server is unavailable for transaction end.
Last edited by dwayne_davis on Wed Jul 21, 2004 6:25 am, edited 1 time in total.

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 1:55 pm

I just noticed that in addition to the client messages above, I ended up with the same task over and over in my pending change set. I undid all of them, tried it again, and it still did not work.

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

Post by jclausius » Fri Jul 09, 2004 2:01 pm

For the sgvault.log file - can you check vault.config in your VaultService physical directory? The path of the log file is specified there. Perhaps something there is incorrect. Just make sure the directory exists, and the ASP.Net Process' account has read/write to that directory.

In regards to the rollback - Let's try something different. Can you :
1) Check Out / Get the version you wish to rollback (from History Explorer).
2) Open the file in an editor, look it over to make sure you have the correct file, and then (very important) save the file.
3) Check in the file.
Jeff Clausius
SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 2:07 pm

Here's the log file - no worries on it being a public forum since there is nothing in it.

Note that although the log gives the last entry at 11:17 AM, I just tried a rollback at 12:55 PM.

I'm certain the ASP process can write to the log since the log contains *some* data.
Attachments
sgvault.log.txt
(2.97 KiB) Downloaded 1237 times

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

Post by jclausius » Fri Jul 09, 2004 2:09 pm

dwayne_davis wrote:1) Sql Server is on a different machine. Permissions should be okay because everything else works fine (even rollback for a different file).
Just in case, you may want to double check your network settings. In the other case I mentioned, the NICs were configured for full duplex, but they only supported half duplex.

What was odd in this case was the machine seemingly ran correctly. The user could log in, get files, make modifications. They just couldn't rollback this one particular file. However, after changing to the correct network configuration, the user was able to rollback the file.

---------------

Another idea - We could try to eliminate the network component of the equation. You could temporarily install the Vault Server on the SQL Server machine, and try the rollback. Just a thought.
Jeff Clausius
SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 2:20 pm

I was able to simulate rollback by checking out the file, getting the older version, making a minor change to the file (added a newline to the end - otherwise Vault thought the file had not changed and just did 'Undo Checkout') and checking it back in - resolving the merge issue.

I'll check out the network settings, but I don't think the issue is happening at the server. Since I end up with pending changes and the client states that it could not contact the server to finish the transaction this really sounds more like a client/server issue (which occurred on another machine as well). Also, the fact that the server is not logging anything makes me think the server is not seeing an error.

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

Post by jclausius » Fri Jul 09, 2004 2:23 pm

Did you place the server log in Debug Mode through the Admin Tool?

That would start logging begin/end pairs, showing what the server was doing.
Jeff Clausius
SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 2:52 pm

jclausius wrote:Did you place the server log in Debug Mode through the Admin Tool?

That would start logging begin/end pairs, showing what the server was doing.
Yes, I also restarted the web server... twice. I also double checked that the Vault.config file was in fact logging to the correct place, but the fact that the log is getting written to some times already gave me my answer. I don't know why the log is not getting written to.

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

Post by jclausius » Fri Jul 09, 2004 2:59 pm

I don't want to raise the alarm here, but this is not an encouraging sign.

When in debug mode, EVERY action taken by clients will generate a BEGIN / END pair in the server log. If the log is not generating those pairs, then either the Server is not in Debug mode, IIS didn't restart the Vault Web Service correctly, or a more serious problem.

Since you've accomplished your task, I'll consider this thread closed. However, please keep an eye on things, and if anything appears out of the ordinary do not hesitate to contact us through this forum or through email / phone.
Jeff Clausius
SourceGear

dwayne_davis
Posts: 34
Joined: Mon Jan 26, 2004 5:12 pm

Post by dwayne_davis » Fri Jul 09, 2004 3:12 pm

jclausius wrote:I don't want to raise the alarm here, but this is not an encouraging sign.

When in debug mode, EVERY action taken by clients will generate a BEGIN / END pair in the server log. If the log is not generating those pairs, then either the Server is not in Debug mode, IIS didn't restart the Vault Web Service correctly, or a more serious problem.

Since you've accomplished your task, I'll consider this thread closed. However, please keep an eye on things, and if anything appears out of the ordinary do not hesitate to contact us through this forum or through email / phone.
I rebooted the server and the log is now getting written to. I too was concerned that debug mode did not make a difference. For whatever reason, on the file in question, rollback does not work and does not write an entry to this log.

I just did a test with a different repository (one I have for testing). I am able to modify a file, I see entries in the log file included here:

Code: Select all

----7/9/2004 1:53:28 PM      mkhamis--se413625.engineeringsw.com(10.20.82.31)--SSL Disabled
	Retrieved 0 pluginInfos for this type
----7/9/2004 1:53:28 PM      mkhamis--se413625.engineeringsw.com(10.20.82.31)--SSL Disabled
	Exiting plugin thread
----7/9/2004 1:53:29 PM      mkhamis--se413625.engineeringsw.com(10.20.82.31)--SSL Disabled
	Retrieved 0 pluginInfos for this type
----7/9/2004 1:53:29 PM      mkhamis--se413625.engineeringsw.com(10.20.82.31)--SSL Disabled
	Exiting plugin thread
----7/9/2004 1:53:31 PM      mkhamis--se413625.engineeringsw.com(10.20.82.31)--SSL Disabled
	Retrieved 0 pluginInfos for this type
----7/9/2004 1:53:31 PM      mkhamis--se413625.engineeringsw.com(10.20.82.31)--SSL Disabled
	Exiting plugin thread
----7/9/2004 2:06:11 PM      ddavis--se411755.engineeringsw.com(10.20.82.35)--SSL Disabled
	Retrieved 0 pluginInfos for this type
----7/9/2004 2:06:11 PM      ddavis--se411755.engineeringsw.com(10.20.82.35)--SSL Disabled
	Exiting plugin thread
----7/9/2004 2:06:27 PM      ddavis--se411755.engineeringsw.com(10.20.82.35)--SSL Disabled
	Retrieved 0 pluginInfos for this type
----7/9/2004 2:06:27 PM      ddavis--se411755.engineeringsw.com(10.20.82.35)--SSL Disabled
	Exiting plugin thread
Note that this log snippet include when I tried to rollback in my test repository, which worked and was the last entry pair. When I try to rollback on the offending file, however, nothing is written to the log. From the messages the client states it seems as if this is not getting to the server; the client message states:

Code: Select all

[7/9/2004 2:07:04 PM] Preparing data to begin transaction
[7/9/2004 2:07:04 PM] Beginning transaction
[7/9/2004 2:07:04 PM]     Rollback $/NBG/Source/Igt/Nbg/Common/CBalance.cs
[7/9/2004 2:07:04 PM] Ending the transaction
[7/9/2004 2:07:08 PM] Server unavailable for transaction end
[7/9/2004 2:07:08 PM] Transaction failed
[7/9/2004 2:07:08 PM] Item $/NBG/Source/Igt/Nbg/Common/CBalance.cs caused the transaction to fail: A failure occured during the streaming of the file.
[7/9/2004 2:07:08 PM] Transaction failed
The part that leads me to believe that the cleint is not hitting the server is the line:

Code: Select all

[7/9/2004 2:07:08 PM] Server unavailable for transaction end
Last edited by dwayne_davis on Wed Jul 21, 2004 6:27 am, edited 1 time in total.

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

Post by jclausius » Fri Jul 09, 2004 9:42 pm

OK. I'll do some minor testing next week just to double check the rollback functionality.
Jeff Clausius
SourceGear

Locked