mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1165119 Remove corrupt morgue directories polluting nightly profiles. r=janv
This commit is contained in:
parent
3840af94c6
commit
1e5ef68804
@ -2015,6 +2015,35 @@ QuotaManager::InitializeRepository(PersistenceType aPersistenceType)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
// The Cache API was creating top level morgue directories by accident for
|
||||
// a short time in nightly. This unfortunately prevents all storage from
|
||||
// working. So recover these profiles by removing these corrupt directories.
|
||||
// This should be removed at some point in the future.
|
||||
bool
|
||||
MaybeRemoveCorruptDirectory(const nsAString& aLeafName, nsIFile* aDir)
|
||||
{
|
||||
#ifdef NIGHTLY_BUILD
|
||||
MOZ_ASSERT(aDir);
|
||||
|
||||
if (aLeafName != NS_LITERAL_STRING("morgue")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
NS_WARNING("QuotaManager removing corrupt morgue directory.");
|
||||
|
||||
nsresult rv = aDir->Remove(true /* recursive */);
|
||||
NS_ENSURE_SUCCESS(rv, false);
|
||||
|
||||
return true;
|
||||
#else
|
||||
return false
|
||||
#endif // NIGHTLY_BUILD
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
nsresult
|
||||
QuotaManager::InitializeOrigin(PersistenceType aPersistenceType,
|
||||
const nsACString& aGroup,
|
||||
@ -2072,6 +2101,10 @@ QuotaManager::InitializeOrigin(PersistenceType aPersistenceType,
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
if (MaybeRemoveCorruptDirectory(leafName, file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Client::Type clientType;
|
||||
rv = Client::TypeFromText(leafName, clientType);
|
||||
if (NS_FAILED(rv)) {
|
||||
@ -4173,6 +4206,10 @@ AsyncUsageRunnable::AddToUsage(QuotaManager* aQuotaManager,
|
||||
}
|
||||
}
|
||||
|
||||
if (MaybeRemoveCorruptDirectory(leafName, file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Client::Type clientType;
|
||||
rv = Client::TypeFromText(leafName, clientType);
|
||||
if (NS_FAILED(rv)) {
|
||||
|
Loading…
Reference in New Issue
Block a user