Error messages and how to deal with them

This is not necessarily a complete list of errors. If you encounter a new error and figure out a workaround or a fix, please note it here. If the error occurs when loading the dumpfile see also FixingTheDumpfile


Parameter errors

These errors are caused by specifying something wrong in a parameter

FATAL ERROR: Unknown task 'foo'

Context
Start of execution with options --resume --task=foo
Solution
Task must be one of INIT, LOADVSSNAMES, FINDDBFILES, GETPHYSHIST, MERGEPARENTDATA, MERGEMOVEDATA, REMOVETMPCHECKIN, MERGEUNPINPIN, BUILDCOMMENTS, BUILDACTIONHIST or IMPORTSVN. Fix your spelling or do not resume.

WARNING: --resume set but no database exists; starting new conversion…

Context
Start of execution with --resume --task=foo
Solution
Make sure you're resuming in the same path where you started, or have adjusted your options correctly to find the migration you are resuming.

Path and file errors

These errors are a result of something in the filesystem. You may be specifying a file that doesn't exist and should, something that exists but shouldn't, or you may be trying to read or write a file where you do not have permission.

Could not create dumpfile 'foo'

Solution
Verify you have write permissions in the current directory. If you are specifying the dumpfile as a parameter, make sure the path exists and you have permission to create a file. If the file exists, make sure you have permission to overwrite it.

The conversion needs at least ssphys version 0.22

Solution
Make sure the specified version of ssphys is available in the current directory or on the path, and you have permissions to execute it. If you have provided a path for ssphys, make sure the path is correct. Check for an older version of ssphys which appear earlier in the path.

Could not delete existing database foo

Solution
Check file permissions on the named file. Make sure no other process has the file open.
Workaround
Delete the file before starting the process.

foo does not appear to be a valid VSS database

Solution
Make sure the --vssdir param is pointing at the directory where srcsafe.ini is located. In a standard configuration, this directory will have subdirectories called data, loggedin, users, temp. vss2svn checks for the existence of a /data/ subdirectory. If your configuration is different, you may need to reconfigure your VSS repository or modify vss2svn.pl (near line 1653) to recognize your alternate setup.

auto_props file 'foo' is not readable

Context
Start of execution with option --auto_props=foo
Solution
Make sure foo exists at the path you specified and you have permissions to read it.

label_mapper file 'foo' is not readable

Context
Start of execution with option --label_mapper=foo
Solution
Make sure foo exists at the path you specified and you have permissions to read it.

Runtime errors in vss2svn

These appear to be internal errors. If you encounter any, they are likely bugs in vss2svn.

Could not create cache 'foo'

Context
Throughout. foo may be NameLookup, !Physical, PhysicalAction, VssAction, SvnRevisionVssAction, !Label, and possibly others
Solution
Unknown. Insufficient memory?

Could not create SVN revision handler

Solution
Unknown. Insufficient memory?

Couldn't connect database foo: …

Solution
Unknown. The SQLite database used for migration could not be created, or after creation, vss2svn was unable to connect.

FAILED to execute: foo

Solution
Determine why foo command could not be executed. Make sure the file exists and you have permission to execute it.

FAILED with non-zero exit status n (cmd: foo)

Solution
Determine why foo command returned an error result.

Errors caused by problems in VSS data

Best practice for a vss2svn migration is to operate on a copy of your VSS database, not the original. This gives you the option of performing the migration multiple times and trying different combinations. It's best to make as few changes as possible to your VSS database to avoid piling new problems on old. Any correction of VSS data depends on the ability to start over from the very beginning.

Can't retrieve info from physical file 'foo' ; it was either destroyed or corrupted

Probable cause
A file in VSS is the descendant of another file which does not exist in the VSS repository. The older file does not exist, either because of corruption (deleted by Analyze), or by a user (answering yes to "Destroy permanently?", or purging deleted files).
Suggestions
  • If you are performing the migration against a copy of your VSS database (as recommended), and the file was purged/destroyed in an effort to make the migration cleaner, consider leaving the file in place and deleting it after the migration.
  • If the file was removed by Analyze & Repair, there's a slim chance you could put the file back where it belongs and recover the data on a retest, assuming you still have the backup from the Repair.
  • If the file is essential, you may be able to restore a backup (either VSS backup or filesystem backup) and bring back the file for the migration.

Can't retrieve revisions from physical file 'foo' ; it was either destroyed or corrupted

Probable cause
  • Internal corruption in the VSS repository
  • File was purged, or deleted using Destroy Permanently option
Suggestions: Same as "Can't retrieve info from physical file..." above.

Can't handle file 'foo' ; not a project or file

Probable cause
Internal corruption in the VSS repository. vss2svn could not get enough information about the item, or the information was not recognized.
Suggestions
  • Run a verbose analyze on your VSS repository before making the migration.
  • Make sure your copy of the VSS repository was clean and complete.
  • Make sure all users are out of the database while making your copy.
  • VSS backup and restore can introduce new problems. Use a straight file copy of your repository if at all possible.

'foo' : Unknown action 'bar'

Probable cause
  • The Action attribute for this item is damaged in the VSS repository.
  • A newer version of VSS defines Action values not recognized by your version of vss2svn.
Suggestions
  • If the bar action is valid, check for a newer version of vss2svn which understands this action, including nightly builds. If not, join the [vss2svn-users@lists.pumacode.org vss2svn-users] mailing list and email the error you received.
  • Run Analyze & Repair on your database before your next migration.
  • If you can live without the file, consider purging it from your VSS copy before the next migration.

'foo' : wrong timestamp at version 'bar' ; setting timestamp to 'baz'

Probable cause
  • The timestamp is corrupt in the VSS repository.
  • The system clock of user who checked the file in to VSS was set incorrectly
Suggestions
Accept vss2svn's suggested timestamp.

Multiple child recs for parent rec 'foo'

Probable cause
Unknown
Suggestions
Unknown

Multiple child recs for parent MOVE rec 'foo'

Probable cause
Unknown
Suggestions
Unknown. vss2svn will try to pick one of the files with the correct timestamp.

Inconsistent item type for 'foo' ; 'bar' unexpected

Probable cause
Unknown
Suggestions
Unknown. vss2svn will bypass this item and continue.

'foo' : no version specified for retrieval

Probable cause
A version is required for actions other than ADD and COMMIT. The VSS repository does not have a version recorded for this item.
Suggestions
Unknown. vss2svn will try to recover by looking for version 1.

Bugs

Use of uninitialized value in concatenation (.) or string at vss2svn.pl line 1289.

Context
Very early in output when running with --md5 option not specified. The migration continues.
Solution
Use the 20071128 nightly build or later. May not exist in some older builds as well.
Workaround
Specify --md5 option even if you don't need it.

Undefined subroutine &Text::Glob::glob_to_regex_string at Dumpfile/AutoProps.pm line 30.

Context
Before or during IMPORTSVN task when --auto_props option is used. The migration aborts.
Solution
Use the latest nightly build with Text:Glob 0.08. Should be fixed since r335
Workaround
Do not use --auto_props option

PumaCode.org recommends CVSDude for fast, professional Subversion and Trac hosting:

CVSDude.com

These ads are automatically generated by Google. Revenue from these ads helps to pay for hosting this site; however, these ads do not constitute an endorsement by PumaCode.org.