Cannot Retrieve or Difference Previous Versions of Files
Moderator: SourceGear
Cannot Retrieve or Difference Previous Versions of Files
SOS Version = 4.2
Most of the time, but not always, an attempt to GET or DIFF a previous version of a file will cause SOS to hang, until the STOP button is pressed.
Log file shows the following errors from GetFile():
1) Exception getting file. Version not found.
2) ParseStream created a null message.
However, VSS has no trouble with GET or DIFF to the same version of the file.
This started to happen about the same time we updated SOS from version 4.1.2 and cleaned up the VSS database.
Most of the time, but not always, an attempt to GET or DIFF a previous version of a file will cause SOS to hang, until the STOP button is pressed.
Log file shows the following errors from GetFile():
1) Exception getting file. Version not found.
2) ParseStream created a null message.
However, VSS has no trouble with GET or DIFF to the same version of the file.
This started to happen about the same time we updated SOS from version 4.1.2 and cleaned up the VSS database.
SOS Server communicates with the VSS database via the VSS Automation Component, which sometimes has bugs or problems with database corruption.
To determine which version of the SourceSafe Automation Component (ssapi.dll) is used by SOS Server, look under this registry key:
HKEY_CLASSES_ROOT\CLSID{783CD4E4-9D54-11CF-B8EE-00608CC9A71F}\InprocServer32
The value will have the path to the specific ssapi.dll file used by SOS Server. For the version information, locate the ssapi.dll file. Right click on the ssapi.dll file, choose Properties->Version.
What version is it?
Also, have you run Analyze on your VSS database? This might help:
http://support.sourcegear.com/viewtopic.php?t=50
To determine which version of the SourceSafe Automation Component (ssapi.dll) is used by SOS Server, look under this registry key:
HKEY_CLASSES_ROOT\CLSID{783CD4E4-9D54-11CF-B8EE-00608CC9A71F}\InprocServer32
The value will have the path to the specific ssapi.dll file used by SOS Server. For the version information, locate the ssapi.dll file. Right click on the ssapi.dll file, choose Properties->Version.
What version is it?
Also, have you run Analyze on your VSS database? This might help:
http://support.sourcegear.com/viewtopic.php?t=50
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
This might be a concurrency crash. See this KB article about changing the registry setting for the VSS automation component:
http://support.sourcegear.com/viewtopic.php?t=10
http://support.sourcegear.com/viewtopic.php?t=10
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
The VSS Automation Component, which SOS Server uses to communicate with the database, is having a problem getting the file.
Try archiving and restoring a project to see if that improves the Get or Diff from history. Sometimes an archive and restore cleans up a database better than Analyze.
Try archiving and restoring a project to see if that improves the Get or Diff from history. Sometimes an archive and restore cleans up a database better than Analyze.
Linda Bauer
SourceGear
Technical Support Manager
SourceGear
Technical Support Manager
Unable to Retrieve Previous versions of file using get SOS
I'm having the same EXACT issue here. Any other suggestions? I even Archived and Restored the project in question as mentioned.
Brian C Drab
Can you enable verbose logging - http://support.sourcegear.com/viewtopic.php?t=463 on the SourceOffSite Server, retry the operation, and then post or send the server log file to support at sourcegear dot com. If you do use e-mail, please be sure to reference this forum post.
Jeff Clausius
SourceGear
SourceGear
Verbose Logging & Method Logging Enabled
OK. I did the following:
1. Made the sosservice.exe.config file editable as it was read-only.
2. Enabled Verbose logging as well as method logging and saved the file.
3. Marked the file as read-only again.
4. Stopped the Source Offsite service.
5. Deleted the log.txt file so we can start fresh.
6. Started the Source Offsite service.
7. Opened the Source Offsite client and tried to get a previous version of the file.
Had the expected results (the spinning busy symbol).
I've attached the logs as requested however also put the last 5 lines from the log here. (you can see an exception)
3/27/2008 2:37:27 AM - 1: GetFile() file=Horizon Current Violations All Terminals.rdl
3/27/2008 2:37:28 AM - 1: Enter SendFile(2)
3/27/2008 2:37:37 AM - 1: Exception getting file. Access to file "\\kaplan-dev\VSSDatabases\VSS\data" denied
3/27/2008 2:37:37 AM - 1: Exit GetFile(3): Horizon Current Violations All Terminals.rdl
3/27/2008 2:37:37 AM - 1: Exit GetFile(1)
1. Made the sosservice.exe.config file editable as it was read-only.
2. Enabled Verbose logging as well as method logging and saved the file.
3. Marked the file as read-only again.
4. Stopped the Source Offsite service.
5. Deleted the log.txt file so we can start fresh.
6. Started the Source Offsite service.
7. Opened the Source Offsite client and tried to get a previous version of the file.
Had the expected results (the spinning busy symbol).
I've attached the logs as requested however also put the last 5 lines from the log here. (you can see an exception)
3/27/2008 2:37:27 AM - 1: GetFile() file=Horizon Current Violations All Terminals.rdl
3/27/2008 2:37:28 AM - 1: Enter SendFile(2)
3/27/2008 2:37:37 AM - 1: Exception getting file. Access to file "\\kaplan-dev\VSSDatabases\VSS\data" denied
3/27/2008 2:37:37 AM - 1: Exit GetFile(3): Horizon Current Violations All Terminals.rdl
3/27/2008 2:37:37 AM - 1: Exit GetFile(1)
- Attachments
-
- log.txt
- (4.73 KiB) Downloaded 570 times
Brian C Drab
The SourceOffSite service is going to run under a Windows based account. On the VSS machine, check the permissions of the the actual share VSSDatabases as well as ALL folder permissions that are under that share.
It appears as if something on that folder or one of the files is not allowing access OR some other process like a real-time anti-virus scanner or some other process on the VSS machine may also have a file locked.
It appears as if something on that folder or one of the files is not allowing access OR some other process like a real-time anti-virus scanner or some other process on the VSS machine may also have a file locked.
Jeff Clausius
SourceGear
SourceGear
Process Monitor Run - Permission Denied
I thought about permissions as well. I ran process monitor and didn't find any permission denied being reported. I tried it again a few minutes ago and same results.
What I did notice is the following:
1. I am able to retrieve the history for some files in some projects without a problem so it doesn't appear to be ALL files.
2. When I attempt to retrieve one that DOESN'T work I notice that in process monitor that SOS is attempting to create a file but as a directory? I've attached a screen shot so you could see it. When I AM able to retrieve a file successfully these entries don't exist. It's almost as if SOS is confused as to "where" the file is.
I could also change the service account to use our Domain Administrator account if you like however I believe we will see the same results. Any other ideas?
What I did notice is the following:
1. I am able to retrieve the history for some files in some projects without a problem so it doesn't appear to be ALL files.
2. When I attempt to retrieve one that DOESN'T work I notice that in process monitor that SOS is attempting to create a file but as a directory? I've attached a screen shot so you could see it. When I AM able to retrieve a file successfully these entries don't exist. It's almost as if SOS is confused as to "where" the file is.
I could also change the service account to use our Domain Administrator account if you like however I believe we will see the same results. Any other ideas?
- Attachments
-
- Capture.JPG (53.69 KiB) Viewed 15628 times
Brian C Drab
Can you search the SOS Server for the following file: "Horizon Current Violations All Terminals.rdl"
This is a hunch (and hunches can be wrong)...
Does that exist anywhere on the machine? If so, and it is in a temp directory (or a directory that SOS has been configured to use), can you remove it and then retry?
This is a hunch (and hunches can be wrong)...
Does that exist anywhere on the machine? If so, and it is in a temp directory (or a directory that SOS has been configured to use), can you remove it and then retry?
Jeff Clausius
SourceGear
SourceGear
What is happening is the SOS Server is attempting a GET on the file "Horizon Current Violations All Terminals.rdl".
Is it safe to assume the file exists in "$/Visual Basic .NET 2005/Reporting Services Solution/Safety Reports" ?
In any case, SourceOffSite asks VSS to get that file (at a version) and then place it in a TEMP directory under the same file name. The exception handling providing the error, "Access to file '\\kaplan-dev\VSSDatabases\VSS\data' denied", is from VSS not SourceOffSite. I don't know why VSS would be reporting this failure.
Have you run analyze w/ fix switches on the VSS database in a while? Sometimes bad links show up in the VSS Automation component that are not seen in the VSS Explorer.
Is it safe to assume the file exists in "$/Visual Basic .NET 2005/Reporting Services Solution/Safety Reports" ?
In any case, SourceOffSite asks VSS to get that file (at a version) and then place it in a TEMP directory under the same file name. The exception handling providing the error, "Access to file '\\kaplan-dev\VSSDatabases\VSS\data' denied", is from VSS not SourceOffSite. I don't know why VSS would be reporting this failure.
Have you run analyze w/ fix switches on the VSS database in a while? Sometimes bad links show up in the VSS Automation component that are not seen in the VSS Explorer.
Jeff Clausius
SourceGear
SourceGear