signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.65k stars 2.67k forks source link

Desktop dropped one of the messages forwarded by iOS due to identical sent timestamp #6035

Open awaitlink opened 2 years ago

awaitlink commented 2 years ago

Bug Description

If multiple messages have the same sent timestamps, Desktop drops the duplicates. However, this can happen for two different messages when forwarding multiple messages using iOS.

handleDataMessage/groupv2([REDACTED]): Received duplicate transcript for message [REDACTED] 1658174874201, but it was not an update transcript. Dropping.

It might be a bug in Signal iOS that it allows two sent messages to share the same timestamp, potentially causing other issues in the future; sorry if I should've reported it in signalapp/Signal-iOS instead.

Steps to Reproduce

No exact steps, but this is how it happened:

  1. Forward 12 messages using iOS (Desktop is offline at this time).
  2. Launch Desktop, go into the chat which you forwarded the messages to.

Actual Result: One of the messages with an identical timestamp is missing on the linked Desktop. Expected Result: All forwarded messages should be present on all devices.

Platform Info

Signal Version: 5.51.0-beta.1 Operating System: macOS 12.4 Linked Device Version: Signal iOS 5.46.0.10

Link to Debug Log

Sent timestamps of the last 3 of the 12 forwarded messages:

Number Sent timestamp
10 1658174874201
11 1658174874201
12 1658174874202

Message number 11 is missing on Desktop, but present on iOS.

https://debuglogs.org/desktop/5.51.0-beta.1/f015ac04e4d280c6812b46eb71cda7fb9ed4f416a108fe31ed4f8dc25d60faa0.gz

https://debuglogs.org/ios/5.46.0/1d0744e9427cabff347cf17746dcebad9b6dc772e2b16327cc5e2b669c9b7ec8.zip

scottnonnenberg-signal commented 2 years ago

Thanks for the report. We've sent this over to the iOS folks, because they should be doing the work to prevent duplicate timestamps.

scottnonnenberg-signal commented 2 years ago

@u32i64 Just to be sure, can you grab 'sent id' information for all the associated messages? In particular we need the multiple messages on your phone that seem related.

awaitlink commented 2 years ago

The only affected (i.e. missing on Desktop) message was number 11 (same sent timestamp as 10).

I'm assuming that by "sent id" you mean "sent timestamp", but let me know if there's some additional information I can get that would be useful, e.g. via DevTools on Desktop.

Perhaps an important thing to note is that none of the messages had attachments (although messages 1 and 2 are long i.e. have "Read More" on iOS (on Desktop only 1 has it)).

Here are the sent timestamps of all 12 messages that I had forwarded:

Number Sent timestamp
1 1658174874189
2 1658174874192
3 1658174874193
4 1658174874194
5 1658174874195
6 1658174874197
7 1658174874198
8 1658174874199
9 1658174874200
10 1658174874201
11 1658174874201
12 1658174874202
stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

awaitlink commented 2 years ago

This is still reproducible on:

Signal Version: 5.63.0-beta.4 Operating System: macOS 13.0 Public Beta (22A5373b) Linked Device Version: Signal iOS 5.58.0.7

scottnonnenberg-signal commented 2 years ago

@u32i64 Can you also report this with iOS? We've forwarded it to them already, because they shouldn't be forwarding messages with the same sent timestamp.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

awaitlink commented 1 year ago

I've made a comment on the corresponding Signal iOS issue https://github.com/signalapp/Signal-iOS/issues/5459#issuecomment-1385099219 that this is still reproducible.

Should this issue be closed so that it's tracked just in one place? Otherwise, perhaps it could be labelled so that the stale bot doesn't mark it as https://github.com/signalapp/Signal-Desktop/labels/stale?

(Also, the stale label didn't seem to get removed on the iOS issue, even after I made the comment.)


Edit: Just noticed that despite what the comment by the stale bot says, this issue hasn't actually been labelled as https://github.com/signalapp/Signal-Desktop/labels/stale.