Instrument errors in storage manager.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent 19c0a7ad7c
commit 7da5df594f

@ -85,7 +85,11 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
- (nullable Class)unarchiver:(NSKeyedUnarchiver *)unarchiver cannotDecodeObjectOfClassName:(NSString *)name originalClasses:(NSArray<NSString *> *)classNames - (nullable Class)unarchiver:(NSKeyedUnarchiver *)unarchiver cannotDecodeObjectOfClassName:(NSString *)name originalClasses:(NSArray<NSString *> *)classNames
{ {
DDLogError(@"[OWSUnarchiverDelegate] Ignoring unknown class name: %@. Was the class definition deleted?", name); OWSProdErrorWParams(@"storage_error_could_not_decode_class", ^{
return (@{
@"class_name" : name,
});
});
return [OWSUnknownObject class]; return [OWSUnknownObject class];
} }
@ -180,13 +184,14 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
return [unarchiver decodeObjectForKey:@"root"]; return [unarchiver decodeObjectForKey:@"root"];
} @catch (NSException *exception) { } @catch (NSException *exception) {
// Sync log in case we bail. // Sync log in case we bail.
DDLogError(@"%@ Unarchiving key:%@ from collection:%@ and data %@ failed with error: %@", OWSProdErrorWParams(@"storage_error_deserialization", ^{
self.tag, return (@{
key, @"collection" : collection,
collection, kOWSProdAssertParameterNSExceptionName : exception.name,
data, kOWSProdAssertParameterNSExceptionReason : exception.reason,
exception.reason); kOWSProdAssertParameterNSExceptionClassName : NSStringFromClass([exception class]),
DDLogError(@"%@ Raising exception.", self.tag); });
});
@throw exception; @throw exception;
} }
}; };
@ -255,7 +260,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
BOOL success = [ressourceURL setResourceValues:resourcesAttrs error:&error]; BOOL success = [ressourceURL setResourceValues:resourcesAttrs error:&error];
if (error || !success) { if (error || !success) {
DDLogError(@"Error while removing files from backup: %@", error.description); OWSProdErrorWNSError(@"storage_error_file_protecion", error);
return; return;
} }
} }
@ -372,14 +377,14 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
NSError *keySetError; NSError *keySetError;
[SAMKeychain setPassword:newDBPassword forService:keychainService account:keychainDBPassAccount error:&keySetError]; [SAMKeychain setPassword:newDBPassword forService:keychainService account:keychainDBPassAccount error:&keySetError];
if (keySetError) { if (keySetError) {
DDLogError(@"%@ Setting DB password failed with error: %@", self.tag, keySetError); OWSProdErrorWNSError(@"storage_error_could_not_store_database_password", keySetError);
[self deletePasswordFromKeychain]; [self deletePasswordFromKeychain];
[NSException raise:TSStorageManagerExceptionNameDatabasePasswordUnwritable [NSException raise:TSStorageManagerExceptionNameDatabasePasswordUnwritable
format:@"Setting DB password failed with error: %@", keySetError]; format:@"Setting DB password failed with error: %@", keySetError];
} else { } else {
DDLogError(@"Succesfully set new DB password."); DDLogWarn(@"Succesfully set new DB password.");
} }
return newDBPassword; return newDBPassword;

@ -134,7 +134,7 @@ typedef NSDictionary<NSString *, id> *_Nonnull (^OWSProdAssertParametersBlock)()
#define OWSProdFailWNSError(__analyticsEventName, __nserror) \ #define OWSProdFailWNSError(__analyticsEventName, __nserror) \
{ \ { \
DDLogError(@"%s:%d %@: %@", __PRETTY_FUNCTION__, __LINE__, __analyticsEventName, error.debugDescription); \ DDLogError(@"%s:%d %@: %@", __PRETTY_FUNCTION__, __LINE__, __analyticsEventName, __nserror.debugDescription); \
OWSProdFailWParams(__analyticsEventName, AnalyticsParametersFromNSError(__nserror)) \ OWSProdFailWParams(__analyticsEventName, AnalyticsParametersFromNSError(__nserror)) \
} }
@ -169,7 +169,7 @@ typedef NSDictionary<NSString *, id> *_Nonnull (^OWSProdAssertParametersBlock)()
#define OWSProdErrorWNSError(__analyticsEventName, __nserror) \ #define OWSProdErrorWNSError(__analyticsEventName, __nserror) \
{ \ { \
DDLogError(@"%s:%d %@: %@", __PRETTY_FUNCTION__, __LINE__, __analyticsEventName, error.debugDescription); \ DDLogError(@"%s:%d %@: %@", __PRETTY_FUNCTION__, __LINE__, __analyticsEventName, __nserror.debugDescription); \
OWSProdErrorWParams(__analyticsEventName, AnalyticsParametersFromNSError(__nserror)) \ OWSProdErrorWParams(__analyticsEventName, AnalyticsParametersFromNSError(__nserror)) \
} }

Loading…
Cancel
Save