make validatens better

This commit is contained in:
Dwight
2008-05-02 17:42:19 -04:00
parent a48c6c2fa6
commit 6cc05ab96e
2 changed files with 26 additions and 3 deletions

View File

@@ -332,14 +332,23 @@ void clean(const char *ns, NamespaceDetails *d) {
}
string validateNS(const char *ns, NamespaceDetails *d) {
bool valid = true;
stringstream ss;
ss << "\nvalidate ";
ss << "\nvalidate\n";
if( d->capped )
cout << " capped:" << d->capped << " max:" << d->max;
ss << "\n";
ss << " capped:" << d->capped << " max:" << d->max << '\n';
ss << " firstExtent:" << d->firstExtent.toString() << " lastExtent:" << d->lastExtent.toString() << '\n';
ss << " datasize?:" << d->datasize << " nrecords?:" << d->nrecords << " lastExtentSize:" << d->lastExtentSize << '\n';
try {
{
ss << " first extent:\n";
d->firstExtent.ext()->dump(ss);
valid = valid && d->firstExtent.ext()->validates();
}
auto_ptr<Cursor> c = theDataFileMgr.findAll(ns);
int n = 0;
long long len = 0;
@@ -390,6 +399,9 @@ string validateNS(const char *ns, NamespaceDetails *d) {
ss << "\n exception during validate\n" << endl;
}
if( !valid )
ss << " ns corrupt, requires dbchk\n";
return ss.str();
}