I'm again trying to import another VSS archive into Vault and running into nothing but trouble. This is a VSS archive which has passed analyze with no errors; I've also done a VSS archive/restore just to be sure, and then re-ran analyze, again with no errors. I'm using vault 5.04.
The import finishes with something like 1600 "transaction failed" errors, and the sgvault.log file on the server shows these to be FailFileInvalidChecksum exceptions, usually on a check-in by the import tool.
Whenever this exception happens, that particular version of the file is then missing from the Vault history of the file, so I wind up with an import with missing history for some files.
Searching the support forum I find this exception being 'fixed' by clearing the Vault client cache, etc, or fixing the baseline file, but this the import tool, so I don't really know how to do that.
Please help me get these issues resolved ASAP. I convinced my corporate HQ that Vault was the correct solution to replace our legacy VSS databases, and I've wasted countless days on this. I expected problems with the VSS side of things (getting the VSS database cleaned-up, etc), but I didn't expect so many problems in the import tool that don't seem to be related to VSS (I wasted a week on that bug in the import tool where it doesn't delete its temp files of the form "tmpXXXX.tmp" and eventually it runs out of filenames!). My boss is starting to say that maybe Vault wasn't the right choice here.
Thanks.
VSS Import gets FailFileInvalidChecksum exception
Moderator: SourceGear
Re: VSS Import gets FailFileInvalidChecksum exception
More information -- I think the import tool has a bug regarding how it generates the temp file names used to check-in each version of a VSS file:
In the import log, I see entries like:
So in the above example, the temp file name is "tmpC5FB.tmp". That file still is left-over on the disk after the import tool finishes, so I looked at it -- and it does not contain the contents of file1.h! What is more interesting, the file named "tmpC5FA.tmp" _does_ contain one of the versions of file1.h !
The above seems to hold true each time that we get the FailFileInvalidChecksum exception - the temp file listed in the log contains some other file, but the previous temp file contains the correct data. This looks like some kind of race condition where the import tool has the correct checksum but the wrong number for the temp file name - like a different thread sometimes increments the counter used to generate the temp file names.
In the import log, I see entries like:
Code: Select all
Checked in $/.../file1.h ($/.../file1.h) at <time>(Links: $/.../file1.h)
Change set type: Modified
Adding to transaction: $/.../file1.h - C:\...\Temp\tmpC5FB.tmp
An error occurred while trying to end a transaction.
Transaction failed
Transaction succeeded.
The above seems to hold true each time that we get the FailFileInvalidChecksum exception - the temp file listed in the log contains some other file, but the previous temp file contains the correct data. This looks like some kind of race condition where the import tool has the correct checksum but the wrong number for the temp file name - like a different thread sometimes increments the counter used to generate the temp file names.
Re: VSS Import gets FailFileInvalidChecksum exception
Are you running the Vault server and the VSS import tool on the same machine or different machines?
What version of VSS are you using?
I will need to see the server and VSS logs. The server log is found at %windir%\temp\sgvault\sgvault.log and the VSS Import log should be in the same directory as the VSS Import tool. Could you send an email to support at sourcegear.com (attn: Beth) with a link to this forum thread and those logs?
Are you importing from root ($) or a subfolder?
What version of VSS are you using?
I will need to see the server and VSS logs. The server log is found at %windir%\temp\sgvault\sgvault.log and the VSS Import log should be in the same directory as the VSS Import tool. Could you send an email to support at sourcegear.com (attn: Beth) with a link to this forum thread and those logs?
Are you importing from root ($) or a subfolder?
Beth Kieler
SourceGear Technical Support
SourceGear Technical Support
Re: VSS Import gets FailFileInvalidChecksum exception
I've received the email and will respond via email. Thanks.
HS: 221468
HS: 221468
Beth Kieler
SourceGear Technical Support
SourceGear Technical Support
Re: VSS Import gets FailFileInvalidChecksum exception
I emailed Beth privately but wanted to post to the forum for others that might have this problem - I discovered that the files that were failing had some old-style (RCS-style) keywords in them, like $WorkItem, and that by default I had keyword expansion on in the Vault repository. This somehow confused either the import tool or the server, so that when the import tool uploaded file deltas to the server, the checksums didn't match, apparently due to the keyword expansion. Turning off keyword expansion for that repository solved these import problems.
Re: VSS Import gets FailFileInvalidChecksum exception
Thanks for the update. Yes, that will be helpful to other users.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager