Browse Source

Merge pull request #2410 from gmaxwell/salvageharder

Make explicitly requested salvage operations keep going when there is an error.
miguelfreitas
Gavin Andresen 12 years ago
parent
commit
e5ddaf5ec8
  1. 13
      src/db.cpp

13
src/db.cpp

@ -164,9 +164,18 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive, @@ -164,9 +164,18 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive,
Db db(&dbenv, 0);
int result = db.verify(strFile.c_str(), NULL, &strDump, flags);
if (result != 0)
if (result == DB_VERIFY_BAD)
{
printf("ERROR: db salvage failed\n");
printf("Error: Salvage found errors, all data may not be recoverable.\n");
if (!fAggressive)
{
printf("Error: Rerun with aggressive mode to ignore errors and continue.\n");
return false;
}
}
if (result != 0 && result != DB_VERIFY_BAD)
{
printf("ERROR: db salvage failed: %d\n",result);
return false;
}

Loading…
Cancel
Save