Signal-desktop: Poor Performance For Delete Messages (Conversation)

Created on 21 Feb 2018  Â·  11Comments  Â·  Source: signalapp/Signal-Desktop

Bug description

Deleting conversation does not work at all, clicking on deleting closes the conversation, clicking on the conversation again just loads it up like never happened. Nothing is deleted. I try to delete the conversation because Signal now takes 10 minutes to load. Additionally, the application tends to hang up rarely after this trial - and consuming RAM memory until it runs out of it.

Steps to reproduce

  1. Open a conversation in Signal Desktop on Windows
  2. Click on the right-top menu and then on Delete conversation (or similar, I see it in Polish)
  3. Notice the conversation is closed, click on it again
  4. Notice that the conversation loads and is intact

Actual result:
Conversation loads like nothing happened

Expected result:
No conversation at all, empty when loaded

Screenshots

I don't think any screenshot would help in any way for this reproduction

Platform info

Signal version:
v1.3.0

Operating System:
Windows 10 Pro

Linked device version:
Android 4.15.5

Link to debug log

https://gist.github.com/anonymous/d0aeb97b3016a41a9347396ee67071eb

Bug Performance

All 11 comments

I'm having this same issue on Linux. Fedora Linux 27. Signal 1.9.0.

# Installed from flathub (flatpak) ...
[todd@localhost]$ flatpak list |grep signal
org.signal.Signal/x86_64/stable                       system,current

The behavior I am seeing...

  • Click 3-dots
  • Select delete conversation
  • The UI blanks the conversation with the "Select a group or contact.." message, but the application just hangs. The UI (for just the app) freezes, except for the menubar, where I can then Quit. I.e., The window itself works, but the application contained within just hangs. Note: This conversation has about 500 messages in it.

Okay, after fiddling, this seems to be a UI issue. I.e., It is actually trying to delete the conversation, but there is no indication of this except that it is locked up like it has a brain freeze... for a long time.

I tried again and walked away. Came back 10 minutes later and the conversation was deleted. I don't know how long it took.

Therefore: Signal Desktop just needs to do a better job on the user feedback front at the very least. That there is the issue.

The reason we are having performance issues with deleting a conversation is because of our ‘ORM’ (indexeddb-backbonejs-adapter + Backbone), we have to load all messages into memory before deleting them individually.

Since our old messages still store their attachments in memory (Message:schemaVersion <= 2), this can take up a lot of CPU time and memory. The medium-term solution to this is to directly delete data in IndexedDB using direct access and longer-term to migrate to a more powerful persistence layer.

/cc @mortoray

Well... a good short-term solution (and really it should be implemented anyway) is some UI indicator that "work is being done".

The indicator would really help. I think users are willing to wait longer so long as they don't think it's just broken.

@gasi-signal do you want to proceed with added a loading indicator? I'd be happy to make a PR for that.

Is there any way to bypass this ORM and delete the database directly for log out/deleting all data? Cause holy shit it shouldn't have to peg a CPU core for a really really long time to do this.

Like for a user they can just delete the signal sqlite file, or the whole signal directory, seems like there should be a way the app can do that? Won't fix deleting conversation part of this bug, but would make clearing the data from in the app actually feasible.

@rekh127 if all you want to do is delete all of your data and start fresh, deleting all messages, attachments, settings, etc, then you can hit the Clear data on the settings screen. This avoids loading all messages into memory. This issue is about deleting an individual conversation, not all data.

Should I open a new bug then because I did not clear data on the settings
screen and saw a pegged cpu for 15 minutes with slowly increasing memory
usage before I gave up and did it manually.

On Thu, Jun 4, 2020, 6:11 AM Ken Powers notifications@github.com wrote:

@rekh127 https://github.com/rekh127 if all you want to do is delete all
of your data and start fresh, deleting all messages, attachments, settings,
etc, then you can hit the Clear data on the settings screen. This avoids
loading all messages into memory. This issue is about deleting an
individual conversation, not all data.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/signalapp/Signal-Desktop/issues/2060#issuecomment-638837724,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJB2JW43YTOCO3SAIDWH5TRU6MRJANCNFSM4ERXRL2A
.

@rekh127 if the Clear data function is taking a long time then that would be a new bug you can report.

Was this page helpful?
0 / 5 - 0 ratings