diff --git a/ts/sql/Server.ts b/ts/sql/Server.ts index 437d164e2..5e6ec5773 100644 --- a/ts/sql/Server.ts +++ b/ts/sql/Server.ts @@ -3209,7 +3209,10 @@ function saveUnprocessedSync(data: UnprocessedType): string { throw new Error('saveUnprocessedSync: id was falsey'); } - if (attempts >= MAX_UNPROCESSED_ATTEMPTS) { + if (attempts > MAX_UNPROCESSED_ATTEMPTS) { + logger.warn( + `saveUnprocessedSync: not saving ${id} due to exhausted attempts` + ); removeUnprocessedSync(id); return id; } @@ -3376,7 +3379,7 @@ async function getAllUnprocessedAndIncrementAttempts(): Promise< .prepare( ` DELETE FROM unprocessed - WHERE attempts >= $MAX_UNPROCESSED_ATTEMPTS + WHERE attempts > $MAX_UNPROCESSED_ATTEMPTS ` ) .run({ MAX_UNPROCESSED_ATTEMPTS }); diff --git a/ts/textsecure/MessageReceiver.ts b/ts/textsecure/MessageReceiver.ts index e85210539..142e0ceeb 100644 --- a/ts/textsecure/MessageReceiver.ts +++ b/ts/textsecure/MessageReceiver.ts @@ -776,6 +776,13 @@ export default class MessageReceiver } private async queueAllCached(): Promise { + if (this.stoppingProcessing) { + log.info( + 'MessageReceiver.queueAllCached: not running due to stopped processing' + ); + return; + } + const items = await this.getAllFromCache(); const max = items.length; for (let i = 0; i < max; i += 1) { @@ -1098,7 +1105,7 @@ export default class MessageReceiver id, version: 2, - attempts: 1, + attempts: 0, envelope: Bytes.toBase64(plaintext), messageAgeSec: envelope.messageAgeSec, receivedAtCounter: envelope.receivedAtCounter,