From 0c2a1ff89f679dfc5cef16055e4b6d9c41abd359 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Wed, 7 Jun 2017 12:36:04 -0400 Subject: [PATCH] avoid deadlock on unknown session // FREEBIE --- src/Messages/TSMessagesManager.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Messages/TSMessagesManager.m b/src/Messages/TSMessagesManager.m index 4bc52d2ad..9dd0641d9 100644 --- a/src/Messages/TSMessagesManager.m +++ b/src/Messages/TSMessagesManager.m @@ -337,12 +337,13 @@ NS_ASSUME_NONNULL_BEGIN int deviceId = messageEnvelope.sourceDevice; dispatch_async([OWSDispatch sessionStoreQueue], ^{ if (![storageManager containsSession:recipientId deviceId:deviceId]) { + __block TSErrorMessage *errorMessage; [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - TSErrorMessage *errorMessage = + errorMessage = [TSErrorMessage missingSessionWithEnvelope:messageEnvelope withTransaction:transaction]; [errorMessage saveWithTransaction:transaction]; - [self notififyForErrorMessage:errorMessage withEnvelope:messageEnvelope]; }]; + [self notififyForErrorMessage:errorMessage withEnvelope:messageEnvelope]; DDLogError(@"Skipping message envelope for unknown session."); completion(nil); return;