Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Messages should be downloaded asynchronously on startup #3370

Closed
3 tasks done
kb100 opened this issue May 30, 2019 · 3 comments
Closed
3 tasks done

Messages should be downloaded asynchronously on startup #3370

kb100 opened this issue May 30, 2019 · 3 comments

Comments

@kb100
Copy link

kb100 commented May 30, 2019

Bug Description

Initial startup is blocked until all new messages are downloaded and decrypted. I've finished reading through the very lengthy discussion about related issues in the previously mentioned threads. I understand that messages must be downloaded and decrypted in order due to the way the protocol works. The issue here that I have is that this is done in a suboptimal serial fashion. As mentioned in #1442, "... download, decryption, updating local state, and updating UI (the last three are done in serial)" (emphasis mine).

Optimally, the GUI should never ever be locked (queue and mark outgoing messages as "queued to send" until synced if necessary). At the very least read-only operations should never ever be locked. If need be, completely gray out the send button until conversations are fully synced, but the user should be able to view all messages that HAVE already been downloaded and decrypted.

Steps to Reproduce

  1. Send a bunch of Signal messages to/from phone.
  2. Open Signal Desktop
  3. Observe "Loading messages ..." until all messages are downloaded and decrypted.

Actual Result:

The GUI waits for all messages to be "loaded" (all messages downloaded and decrypted) until displaying any new or old messages. This issue is exacerbated by another issue, #3172, namely that sometimes these messages are taking minutes or hours to download.

Expected Result:

The app should start and show already downloaded and decrypted messages immediately, with new messages popping into view as they are downloaded and decrypted asynchronously.

Platform Info

Signal Version: v1.24.1

Operating System: Debian Sid

Linked Device Version: 4.40.4

Link to Debug Log

https://debuglogs.org/8a93ed298c40206bb09bab8932bd662063c61664fde66736373aa2c9a7b293a6

@scottnonnenberg-signal
Copy link
Contributor

How is this not a duplicate of #1442?

@kb100
Copy link
Author

kb100 commented May 30, 2019

The issue is that the process should be done in parallel as much as possible.

Edit: Note the process appears to already be implemented in a different scenario, when the app is already open but disconnected from the internet, then it reconnects after a day of messages have been sent. Nothing freezes and messages just pop into view as they are downloaded and processed.

@scottnonnenberg-signal
Copy link
Contributor

This is definitely a duplicate of #1442, which is about background loading. This is about background loading. Closing in favor of it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants