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

Signal 6.6.0 on F37 does not sync thread #6298

Open
RichardMyersGV opened this issue Feb 18, 2023 · 11 comments
Open

Signal 6.6.0 on F37 does not sync thread #6298

RichardMyersGV opened this issue Feb 18, 2023 · 11 comments
Labels

Comments

@RichardMyersGV
Copy link

RichardMyersGV commented Feb 18, 2023


Bug Description

On Flatpak Signal 6.6.0 on Fedora 37, Signal does not sync messages on a thread once the laptop comes out of sleep. I don't think it has to do with the Flatpak version, but reported it there as well. I no longer think it is related to coming out of sleep, as I've triggered it when the computer was idle for some time. Could have something to do with messaging with someone on iOS 6.11.0.11 (no idea if it's relevant though...)

Steps to Reproduce

  1. Open a thread with 2 participants, but one participant has Signal Desktop on Linux and Signal mobile on Android, and the other participant is on iOS.
  2. Put the Desktop computer running Signal Desktop to sleep (suspend). Or maybe leave it idle for some time... I've only seen the issue show up after the desktop is either suspended or has been idle for some hours (???)
  3. The 2 participants, possibly both mobile, chat on the thread. Doesn't seen to matter what type of media was sent on the thread...
  4. Un-suspend the desktop with Signal still running.
  5. Notice that the thread, as seen on the desktop, does not sync with the new messages sent via the 2 mobile participants.
  6. Going back and forth between other threads to this thread does not initiate a sync action.
  7. Shut down Signal on the desktop, and start it up again.
  8. The thread as seen by the desktop is now synchronized.

Actual Result:

Thread activity on the desktop Signal 6.6.0 during suspend does not synchronize when desktop awakens from suspend. Closing and re-starting Signal is required to see thread activity which occurred during suspend.

Expected Result:

Upon awakening, Signal Desktop should notice threads which have unsynchronized activity and synchronize them.

Screenshots

None.

Platform Info

Signal Version: 6.6.0 (Flatpak)

Operating System: Fedora 37

Linked Device Version: Android 10, Signal version 6.11.7
Also on the thread was an IOS mobile device, which sent most of the pics, videos, etc.

Link to Debug Log

https://debuglogs.org/desktop/6.6.0/2ca351b761f03a494896b8d16f54417161b4ed5aeb929a1c8b735174722cadcd.gz

@RichardMyersGV
Copy link
Author

Just tested it with a thread between my Linux desktop (and my Android mobile), and a thread participant on Android. No issues. It behaved as expected, even with pictures. Didn't try video.

The problem I encountered with with someone on IOS, who sent me pictures and short videos. I'm trying to arrange for more testing with him, and to find out the IOS app version.

@RichardMyersGV
Copy link
Author

RichardMyersGV commented Feb 20, 2023

Just happened again with the same person. He is running iOS (mobile) 6.11.0.11.

Debug log shows this around the time that the Desktop program should've seen the message traffic. My Android app shows everything. The desktop was not in suspend, but had been idle for some time, with the screen locked, and possibly under some power management, but obviously still awake...

INFO  2023-02-20T05:39:17.892Z MessageReceiver.decryptAndCacheBatch storing 1 decrypted envelopes, keeping 0 failed envelopes.
INFO  2023-02-20T05:39:17.892Z commitZoneChanges(MessageReceiver): pending sender keys 0, pending sessions 1, pending unprocessed 1
ERROR 2023-02-20T05:39:38.402Z Error: SQL channel call (getNextAttachmentDownloadJobs) task did not complete in time.
    at createTaskWithTimeout ([REDACTED]/resources/app.asar/preload.bundle.js:59994:24)
    at [REDACTED]/resources/app.asar/preload.bundle.js:80629:12
    at _maybeStartJob ([REDACTED]/resources/app.asar/preload.bundle.js:148259:26)
    at _tick ([REDACTED]/resources/app.asar/preload.bundle.js:148243:8)
ERROR 2023-02-20T05:39:38.403Z Top-level unhandled promise rejection: Error: SQL channel call (getNextAttachmentDownloadJobs) task did not complete in time.
    at createTaskWithTimeout ([REDACTED]/resources/app.asar/preload.bundle.js:59994:24)
    at [REDACTED]/resources/app.asar/preload.bundle.js:80629:12
    at _maybeStartJob ([REDACTED]/resources/app.asar/preload.bundle.js:148259:26)
    at _tick ([REDACTED]/resources/app.asar/preload.bundle.js:148243:8)
INFO  2023-02-20T05:39:44.021Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:39:47.815Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:40:14.107Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:40:17.897Z WebSocketResources: Sending a keepalive message
ERROR 2023-02-20T05:40:38.402Z Error: SQL channel call (getNextAttachmentDownloadJobs) task did not complete in time.
    at createTaskWithTimeout ([REDACTED]/resources/app.asar/preload.bundle.js:59994:24)
    at [REDACTED]/resources/app.asar/preload.bundle.js:80629:12
    at _maybeStartJob ([REDACTED]/resources/app.asar/preload.bundle.js:148259:26)
    at _tick ([REDACTED]/resources/app.asar/preload.bundle.js:148243:8)
ERROR 2023-02-20T05:40:38.403Z Top-level unhandled promise rejection: Error: SQL channel call (getNextAttachmentDownloadJobs) task did not complete in time.
    at createTaskWithTimeout ([REDACTED]/resources/app.asar/preload.bundle.js:59994:24)
    at [REDACTED]/resources/app.asar/preload.bundle.js:80629:12
    at _maybeStartJob ([REDACTED]/resources/app.asar/preload.bundle.js:148259:26)
    at _tick ([REDACTED]/resources/app.asar/preload.bundle.js:148243:8)
INFO  2023-02-20T05:40:44.189Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:40:47.984Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:41:14.275Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:41:18.065Z WebSocketResources: Sending a keepalive message
ERROR 2023-02-20T05:41:38.403Z Error: SQL channel call (getNextAttachmentDownloadJobs) task did not complete in time.
    at createTaskWithTimeout ([REDACTED]/resources/app.asar/preload.bundle.js:59994:24)
    at [REDACTED]/resources/app.asar/preload.bundle.js:80629:12
    at _maybeStartJob ([REDACTED]/resources/app.asar/preload.bundle.js:148259:26)
    at _tick ([REDACTED]/resources/app.asar/preload.bundle.js:148243:8)
ERROR 2023-02-20T05:41:38.404Z Top-level unhandled promise rejection: Error: SQL channel call (getNextAttachmentDownloadJobs) task did not complete in time.
    at createTaskWithTimeout ([REDACTED]/resources/app.asar/preload.bundle.js:59994:24)
    at [REDACTED]/resources/app.asar/preload.bundle.js:80629:12
    at _maybeStartJob ([REDACTED]/resources/app.asar/preload.bundle.js:148259:26)
    at _tick ([REDACTED]/resources/app.asar/preload.bundle.js:148243:8)
INFO  2023-02-20T05:41:44.368Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:41:48.146Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:42:14.460Z WebSocketResources: Sending a keepalive message
INFO  2023-02-20T05:42:18.226Z WebSocketResources: Sending a keepalive message
WARN  2023-02-20T05:42:37.176Z TaskWithTimeout: SQL channel call (deleteSentProtosOlderThan) has been running for 1800001ms
WARN  2023-02-20T05:42:37.176Z TaskWithTimeout: SQL channel call (createOrUpdateItem) has been running for 1799997ms
WARN  2023-02-20T05:42:37.176Z TaskWithTimeout: SQL channel call (getNextAttachmentDownloadJobs) has been running for 1798773ms
WARN  2023-02-20T05:42:37.176Z TaskWithTimeout: SQL channel call (getNextAttachmentDownloadJobs) has been running for 1738772ms
WARN  2023-02-20T05:42:37.176Z TaskWithTimeout: SQL channel call (getNextAttachmentDownloadJobs) has been running for 1678771ms
WARN  2023-02-20T05:42:37.176Z TaskWithT....

@RichardMyersGV
Copy link
Author

If I send a test message from my desktop to the thread while in this state (unsynchronized), it doesn't show up on my phone. The missing messages show up on my desktop only after restarting Signal. After restarting Signal, the test message is in the wrong order (by many hours) on the desktop, and doesn't show up on my phone until I restart Signal on my phone.

@RichardMyersGV RichardMyersGV changed the title Signal 6.6.0 on F37 does not sync thread after coming out of sleep Signal 6.6.0 on F37 does not sync thread Feb 20, 2023
@scottnonnenberg-signal
Copy link
Contributor

This appears to be the same issue as these two:

On some versions of linux, it appears that something in Signal Desktop breaks during sleep/suspend mode, even if that mode was only active for a small time.

We're looking for a consistent way to reproduce this, so we can communicate to the Electron team about it. What are your hardware specs? What else can you tell us about when it happens? Does it happen for some sleeps/suspend sessions, but not for others? What's the difference?

@RichardMyersGV
Copy link
Author

I'm not seeing the problem with 6.7.0, if it makes any difference... But will pay close attention, and if it crops up again, I will provide more details. I did verify that it happened even if just the screen saver (blank, in my case) and screen lock were active. So being suspended was not required, though it also happened during suspend. I would imagine any time Signal Desktop was not actively 'watching' the thread...

@RichardMyersGV
Copy link
Author

Darn, still seeing this problem with 6.7.0...this time when suspended.

@RichardMyersGV
Copy link
Author

What is a good way to gather the HW specs? HW: Dell XPS 15 9550 (circa 2016), 32GB ram, 1TB SS NVME disk, Nvidia GeForce GTX 960M and Intel HD Graphics 530. SW: Fedora 37, Xorg (not Wayland), XFCE4, Flatpak Signal 6.7.0., Light locker.

I need to do more tests, as to whether it depends on who sends Signal traffic, or whether it matters if the laptop is in suspend, or whether the screen is locked, etc.

@scottnonnenberg-signal
Copy link
Contributor

@RichardMyersGV The specs you've provided should be enough, for now. Really, we're looking for any patterns you can provide - what kind of suspend/lock/sleep causes it, and what doesn't?

@DanielNovak
Copy link

DanielNovak commented May 25, 2023

I just updated to 6.19.0 on my Macbook and immediately I got the "Disconnected" yellow banner. Restarting the app, restarting the device, unpairing or even reinstalling doesn't help at all. I can't get it to connect anymore. I haven't done any other changes, I only updated Signal.

Update: Switching to a different WiFi will fix it and Signal will connect. But switching back to the previous Wifi will again end up in Disconnected errors. I have been using this WiFi for years with no issue and I haven't done any changes. I think the new Electron version in Signal 6.19.0 has maybe broken something.

INFO  2023-05-25T07:03:38.414Z System tray service: rendering no tray
INFO  2023-05-25T07:03:42.571Z SocketManager: failed to connect unauthenticated socket  due to error: Error: Connection timed out
    at [REDACTED]/Resources/app.asar/preload.bundle.js:76:373701
    at Timeout._onTimeout ([REDACTED]/Resources/app.asar/preload.bundle.js:21:3312)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
ERROR 2023-05-25T07:03:42.573Z GET (WS) https://chat.signal.org/v1/config 0 Error
ERROR 2023-05-25T07:03:42.599Z Top-level unhandled promise rejection: Error: Connection timed out
    at [REDACTED]/Resources/app.asar/preload.bundle.js:76:373701
    at Timeout._onTimeout ([REDACTED]/Resources/app.asar/preload.bundle.js:21:3312)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
ERROR 2023-05-25T07:03:43.462Z account.registerSecondDevice: got an error TimeoutError
    at getQRCode ([REDACTED]/Resources/app.asar/preload.bundle.js:103:23211)
    at [REDACTED]/Resources/app.asar/preload.bundle.js:103:23689
    at fk ([REDACTED]/Resources/app.asar/preload.bundle.js:70:6837)
    at rs.unstable_runWithPriority ([REDACTED]/Resources/app.asar/preload.bundle.js:62:38235)
    at gg ([REDACTED]/Resources/app.asar/preload.bundle.js:66:40609)
    at Oj ([REDACTED]/Resources/app.asar/preload.bundle.js:70:6262)
    at [REDACTED]/Resources/app.asar/preload.bundle.js:70:6162
    at V ([REDACTED]/Resources/app.asar/preload.bundle.js:62:37224)
    at cwe.port1.onmessage ([REDACTED]/Resources/app.asar/preload.bundle.js:62:35719)
INFO  2023-05-25T07:03:44.304Z GET (WS) https://chat.signal.org/v1/config
INFO  2023-05-25T07:03:44.304Z SocketManager: connecting unauthenticated socket
INFO  2023-05-25T07:03:49.444Z checkExpiringMessages: checking for expiring messages
INFO  2023-05-25T07:03:49.448Z checkExpiringMessages: found no messages to expire
INFO  2023-05-25T07:03:54.313Z SocketManager: failed to connect unauthenticated socket  due to error: Error: Connection timed out
    at [REDACTED]/Resources/app.asar/preload.bundle.js:76:373701
    at Timeout._onTimeout ([REDACTED]/Resources/app.asar/preload.bundle.js:21:3312)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
ERROR 2023-05-25T07:03:54.313Z GET (WS) https://chat.signal.org/v1/config 0 Error
INFO  2023-05-25T07:03:56.451Z GET (WS) https://chat.signal.org/v1/config
INFO  2023-05-25T07:03:56.452Z SocketManager: connecting unauthenticated socket
INFO  2023-05-25T07:04:02.176Z checkExpiringMessages: checking for expiring messages
INFO  2023-05-25T07:04:02.189Z checkExpiringMessages: found no messages to expire
INFO  2023-05-25T07:04:06.458Z SocketManager: failed to connect unauthenticated socket  due to error: Error: Connection timed out
    at [REDACTED]/Resources/app.asar/preload.bundle.js:76:373701
    at Timeout._onTimeout ([REDACTED]/Resources/app.asar/preload.bundle.js:21:3312)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
ERROR 2023-05-25T07:04:06.459Z GET (WS) https://chat.signal.org/v1/config 0 Error
ERROR 2023-05-25T07:04:06.459Z Top-level unhandled promise rejection: HTTPError: promiseAjax catch; code: 0
    at makeHTTPError ([REDACTED]/Resources/app.asar/preload.bundle.js:78:925)
    at _promiseAjax ([REDACTED]/Resources/app.asar/preload.bundle.js:78:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async _retryAjax ([REDACTED]/Resources/app.asar/preload.bundle.js:78:696)
    at async H ([REDACTED]/Resources/app.asar/preload.bundle.js:78:5821)
    at async Object.Te [as getConfig] ([REDACTED]/Resources/app.asar/preload.bundle.js:78:6726)
    at async refreshRemoteConfig ([REDACTED]/Resources/app.asar/preload.bundle.js:76:245093)
    at async Object.initRemoteConfig ([REDACTED]/Resources/app.asar/preload.bundle.js:76:244024)
Original stack:
Error: Connection timed out
    at [REDACTED]/Resources/app.asar/preload.bundle.js:76:373701
    at Timeout._onTimeout ([REDACTED]/Resources/app.asar/preload.bundle.js:21:3312)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
Initial stack:
Error
    at _outerAjax ([REDACTED]/Resources/app.asar/preload.bundle.js:78:867)
    at H ([REDACTED]/Resources/app.asar/preload.bundle.js:78:5827)
    at Object.Te [as getConfig] ([REDACTED]/Resources/app.asar/preload.bundle.js:78:6732)
    at refreshRemoteConfig ([REDACTED]/Resources/app.asar/preload.bundle.js:76:245101)
    at invokeFunc ([REDACTED]/Resources/app.asar/preload.bundle.js:3:14228)
    at leadingEdge ([REDACTED]/Resources/app.asar/preload.bundle.js:3:14307)
    at debounced ([REDACTED]/Resources/app.asar/preload.bundle.js:3:14888)
    at Object.initRemoteConfig ([REDACTED]/Resources/app.asar/preload.bundle.js:76:244030)
    at [REDACTED]/Resources/app.asar/preload.bundle.js:160:11991
Caused by: undefined

@DanielNovak
Copy link

Update to my previous message:

Downgrading to Signal 6.18.0 works. But Signal stops working (connection issues) as soon as I update to 6.19.0. So it's definitely not a problem on my side. Something is broken is 6.18.0 - probably the Electron update?

@scottnonnenberg-signal
Copy link
Contributor

@DanielNovak What's the difference between the two wifi setups? Why do you think one works and the other doesn't?

One thing you can try is contacting the Signal server directly - this is what I see. There might be an ipv6 issue.

$ curl -6 -k https://chat.signal.org/
curl: (7) Couldn't connect to server
$ curl -4 -k https://chat.signal.org/
{"code":404,"message":"HTTP 404 Not Found"}

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

No branches or pull requests

3 participants