Improve handling of expireTimerVersion glare
Co-authored-by: trevor-signal <131492920+trevor-signal@users.noreply.github.com>
This commit is contained in:
parent
c4fe8a8f1a
commit
6a0f70f5bf
1 changed files with 17 additions and 12 deletions
|
@ -4679,32 +4679,37 @@ export class ConversationModel extends window.Backbone
|
||||||
expireTimer = undefined;
|
expireTimer = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const timerMatchesLocalValue =
|
||||||
|
this.get('expireTimer') === expireTimer ||
|
||||||
|
(!expireTimer && !this.get('expireTimer'));
|
||||||
|
|
||||||
|
const localVersion = this.getExpireTimerVersion();
|
||||||
|
|
||||||
const logId =
|
const logId =
|
||||||
`updateExpirationTimer(${this.idForLogging()}, ` +
|
`updateExpirationTimer(${this.idForLogging()}, ` +
|
||||||
`${expireTimer || 'disabled'}, version=${version || 0}) ` +
|
`${expireTimer || 'disabled'}, version=${version || 0}) ` +
|
||||||
`source=${source ?? '?'} reason=${reason}`;
|
`source=${source ?? '?'} localValue=${this.get('expireTimer')} ` +
|
||||||
|
`localVersion=${localVersion}, reason=${reason}`;
|
||||||
|
|
||||||
if (isSetByOther) {
|
if (isSetByOther) {
|
||||||
const expireTimerVersion = this.getExpireTimerVersion();
|
|
||||||
if (version) {
|
if (version) {
|
||||||
if (expireTimerVersion && version < expireTimerVersion) {
|
if (localVersion && version < localVersion) {
|
||||||
log.warn(
|
log.warn(`${logId}: not updating, local version is ${localVersion}`);
|
||||||
`${logId}: not updating, local version is ${expireTimerVersion}`
|
|
||||||
);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (version === expireTimerVersion) {
|
|
||||||
|
if (version === localVersion) {
|
||||||
|
if (!timerMatchesLocalValue) {
|
||||||
log.warn(`${logId}: expire version glare`);
|
log.warn(`${logId}: expire version glare`);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.set({ expireTimerVersion: version });
|
this.set({ expireTimerVersion: version });
|
||||||
log.info(`${logId}: updating expire version`);
|
log.info(`${logId}: updating expire version`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (
|
|
||||||
this.get('expireTimer') === expireTimer ||
|
if (timerMatchesLocalValue) {
|
||||||
(!expireTimer && !this.get('expireTimer'))
|
|
||||||
) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue