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

Core Dump on wayland #6260

Open
2 tasks done
benni347 opened this issue Jan 27, 2023 · 16 comments
Open
2 tasks done

Core Dump on wayland #6260

benni347 opened this issue Jan 27, 2023 · 16 comments

Comments

@benni347
Copy link

  • I have searched open and closed issues for duplicates
  • I am using Signal-Desktop as provided by the Signal team, not a 3rd-party package.

Bug Description

When launching signal with the arguments: --enable-features=UseOzonePlatform --ozone-platform=wayland, it shows the window briefly and then sometimes coredumps.

Steps to Reproduce

  1. Start Signal like the following way: signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland
  2. Wait three seconds.

Actual Result:

It coredumps

Expected Result:

It runs fine

Platform Info

Signal Version:

Signal 6.3.0

Operating System:

EndeavourOS with hyprland compositor

Linked Device Version:

N/A

Link to Debug Log

Couldn't copy the URL somehow. See the attached file for the debug log instead.
debuglog.txt

@Alphare
Copy link

Alphare commented Jan 30, 2023

Can confirm, I also get a coredump with a segfault. The bug is not always immediate, I even got one time where it was seemingly fine.

Platform Info

Signal Version:

Signal 6.3.0

Operating System:

Debian testing with swaywm compositor

Linked Device Version:

N/A

@scottnonnenberg-signal
Copy link
Contributor

Do you get a chance to submit a crash report to Signal when you restart?

Or maybe you could try starting it in wayland, getting the crash, and then starting it under X and then you could submit the crash report to us?

@samsapti
Copy link

samsapti commented Feb 6, 2023

I can confirm as well. I've been able to generate a coredump file, @scottnonnenberg-signal do your want me to upload it somewhere?

Debug log from application start right after the crashing instance: https://debuglogs.org/desktop/6.4.1/66eb78545db94b52e4acd98264ce444ab915bd96b2986d0dc15f4d9cf0c5df2f.gz

Platform info

  • Signal version: 6.4.1
  • OS: Artix Linux + Sway

@scottnonnenberg-signal
Copy link
Contributor

Related: #6247

@scottnonnenberg-signal
Copy link
Contributor

@samsapti Ideally what we'd get from you is a crash dump from within Signal Desktop. It's only available on beta installs, but it's much more likely that we'll get useful information out of it. If you start up, crash, and then start up successfully, it should give you the ability to upload it.

@tpeacock19
Copy link

Here is a crash dump from my system:

https://debuglogs.org/desktop/6.9.0-beta.1/desktop-crash-1d977b44c016d5aca80d006cc01a0df99b3f7f5708485ef4345fdd09eec5d6c5.dmp

Signal version: 6.9.0-beta.1
OS: archlinux
WM: River

@scottnonnenberg-signal
Copy link
Contributor

@tpeacock19 Thanks for that crash dump - that gives us a call stack we can work with!

@terraboops
Copy link

For anyone looking for a workaround: signal-desktop 6.2.0-1 does not have this issue on Wayland.

For project maintainers: would it be helpful to generate more crash dumps? I'd be happy to do that if it helps. :)

@skeet70
Copy link

skeet70 commented Mar 13, 2023

I updated my nixos system and started running into this issue. I'm on 6.7.0 now, not sure what I was on before.

λ ~/ signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland
Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /nix/store/dc7x1m6v4h4sqclsp96fcx803fc1qm03-signal-desktop-6.7.0/lib/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
SIGNAL_ENABLE_HTTP undefined
userData: /home/mumu/.config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
making app single instance
{"level":30,"time":"2023-03-13T22:50:37.571Z","msg":"app.ready: preferred system locales: en-US, en-US, en-US, en, en"}
{"level":30,"time":"2023-03-13T22:50:37.577Z","msg":"Loading preferred system locale: 'en-US'"}
{"level":40,"time":"2023-03-13T22:50:37.577Z","msg":"Problem loading messages for locale 'en-US', Error: ENOENT, _locales/en-US/messages.json not found in [REDACTED]"}
{"level":40,"time":"2023-03-13T22:50:37.578Z","msg":"Falling back to parent language: 'en'"}
{"level":30,"time":"2023-03-13T22:50:37.616Z","msg":"app ready"}
{"level":30,"time":"2023-03-13T22:50:37.616Z","msg":"starting version 6.7.0"}
{"level":30,"time":"2023-03-13T22:50:37.616Z","msg":"media access status [object Undefined] [object Undefined]"}
{"level":30,"time":"2023-03-13T22:50:37.617Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2023-03-13T22:50:37.618Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2023-03-13T22:50:37.618Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2023-03-13T22:50:37.619Z","msg":"getSystemTraySetting had no flags and did no DB lookups. Returning DoNotUseSystemTray"}
{"level":30,"time":"2023-03-13T22:50:37.619Z","msg":"Initializing BrowserWindow config: {\"show\":false,\"width\":1916,\"height\":1064,\"minWidth\":300,\"minHeight\":200,\"autoHideMenuBar\":false,\"titleBarStyle\":\"default\",\"titleBarOverlay\":false,\"backgroundColor\":\"#121212\",\"webPreferences\":{\"devTools\":false,\"spellcheck\":true,\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"sandbox\":false,\"contextIsolation\":true,\"preload\":\"[REDACTED]/preload.bundle.js\",\"backgroundThrottling\":true,\"enablePreferredSizeMode\":true,\"disableBlinkFeatures\":\"Accelerated2dCanvas,AcceleratedSmallCanvases\"},\"icon\":\"[REDACTED]/images/signal-logo-desktop-linux.png\",\"x\":0,\"y\":0}"}
{"level":30,"time":"2023-03-13T22:50:37.627Z","msg":"spellcheck: user locale: en-US"}
{"level":30,"time":"2023-03-13T22:50:37.627Z","msg":"spellcheck: available spellchecker languages:  [\"af\",\"bg\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"de-DE\",\"el\",\"en\",\"en-AU\",\"en-CA\",\"en-GB\",\"en-GB-oxendict\",\"en-US\",\"es\",\"es-419\",\"es-AR\",\"es-ES\",\"es-MX\",\"es-US\",\"et\",\"fa\",\"fo\",\"fr\",\"fr-FR\",\"he\",\"hi\",\"hr\",\"hu\",\"hy\",\"id\",\"it\",\"it-IT\",\"ko\",\"lt\",\"lv\",\"nb\",\"nl\",\"pl\",\"pt\",\"pt-BR\",\"pt-PT\",\"ro\",\"ru\",\"sh\",\"sk\",\"sl\",\"sq\",\"sr\",\"sv\",\"ta\",\"tg\",\"tr\",\"uk\",\"vi\"]"}
{"level":30,"time":"2023-03-13T22:50:37.627Z","msg":"spellcheck: setting languages to:  [\"en-US\"]"}
{"level":30,"time":"2023-03-13T22:50:37.628Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2023-03-13T22:50:37.689Z","msg":"MainSQL: updateSchema:\n  Current user_version: 78;\n  Most recent db schema: 78;\n  SQLite version: 3.39.4;\n  SQLCipher version: 4.5.3 community;\n  (deprecated) schema_version: 339;\n"}
{"level":30,"time":"2023-03-13T22:50:38.498Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2023-03-13T22:50:38.501Z","msg":"System tray service: created"}
{"level":30,"time":"2023-03-13T22:50:38.501Z","msg":"System tray service: updating main window. Previously, there was not a window, and now there is"}
{"level":30,"time":"2023-03-13T22:50:38.501Z","msg":"System tray service: rendering no tray"}
{"level":30,"time":"2023-03-13T22:50:38.502Z","msg":"Begin ensuring permissions"}
{"level":30,"time":"2023-03-13T22:50:38.502Z","msg":"main window is ready-to-show"}
{"level":30,"time":"2023-03-13T22:50:38.502Z","msg":"showing main window"}
{"level":30,"time":"2023-03-13T22:50:38.503Z","msg":"System tray service: rendering no tray"}
{"level":30,"time":"2023-03-13T22:50:38.545Z","msg":"Ensuring file permissions for 4 files"}
{"level":30,"time":"2023-03-13T22:50:38.547Z","msg":"Finish ensuring permissions in 45ms"}
{"level":30,"time":"2023-03-13T22:50:38.878Z","msg":"MainSQL: slow query createOrUpdateItem duration=68ms"}
{"level":30,"time":"2023-03-13T22:50:39.108Z","msg":"MainSQL: slow query createOrUpdateItem duration=70ms"}
{"level":30,"time":"2023-03-13T22:50:39.113Z","msg":"sending `database-ready`"}
{"level":30,"time":"2023-03-13T22:50:39.340Z","msg":"Prevent display sleep service: allowing display sleep"}
{"level":30,"time":"2023-03-13T22:50:39.340Z","msg":"Background throttling enabled because no call is active"}
{"level":30,"time":"2023-03-13T22:50:39.749Z","msg":"updater/start: Updates disabled - not starting new version checks"}
{"level":30,"time":"2023-03-13T22:50:39.794Z","msg":"App loaded - time: 2181"}
{"level":30,"time":"2023-03-13T22:50:39.794Z","msg":"SQL init - time: 78"}
{"level":30,"time":"2023-03-13T22:50:39.794Z","msg":"Preload - time: 526"}
{"level":30,"time":"2023-03-13T22:50:39.794Z","msg":"WebSocket connect - time: 1100"}
{"level":30,"time":"2023-03-13T22:50:39.794Z","msg":"Processed count: 0"}
{"level":30,"time":"2023-03-13T22:50:39.794Z","msg":"Messages per second: 0"}
{"level":30,"time":"2023-03-13T22:50:40.116Z","msg":"MainSQL: slow query insertSentProto duration=86ms"}
{"level":30,"time":"2023-03-13T22:50:40.197Z","msg":"MainSQL: slow query deleteJob duration=80ms"}
{"level":30,"time":"2023-03-13T22:50:41.343Z","msg":"MainSQL: slow query commitDecryptResult duration=70ms"}
{"level":30,"time":"2023-03-13T22:50:42.014Z","msg":"MainSQL: slow query createOrUpdateItem duration=69ms"}
[1]    8749 segmentation fault (core dumped)  signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland

I don't have X on my system or an easy way to get X set up to get debug logs.

I've attached the coredump system log as well.
signal-coredump.log

@ghost
Copy link

ghost commented Jun 12, 2023

For anyone looking for a workaround: signal-desktop 6.2.0-1 does not have this issue on Wayland.

Intermittent crashes in Wayland on startup persist with 6.18.1

@jamesob
Copy link

jamesob commented Jul 27, 2023

I'm seeing this very consistently under sway on Arch with signal version 6.25.0-beta.1:

Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop-beta' }
NODE_ENV production
NODE_CONFIG_DIR /usr/lib/signal-desktop-beta/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
SIGNAL_ENABLE_HTTP undefined
userData: /home/james/.config/Signal Beta
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
getLogger: Logger not yet initialized!
crashReporter: enabled
making app single instance
{"level":30,"time":"2023-07-27T14:18:07.630Z","msg":"crashReporter: enabled"}
{"level":30,"time":"2023-07-27T14:18:07.631Z","msg":"app.ready: preferred system locales: en-US, en"}
{"level":30,"time":"2023-07-27T14:18:07.631Z","msg":"locale: Supported locales: af-ZA, ar, az-AZ, bg-BG, bn-BD, bs-BA, ca, cs, da, de, el, en, es, et-EE, eu, fa-IR, fi, fr, ga-IE, gl-ES, gu-IN, he, hi-IN, hr-HR, hu, id, it, ja, ka-GE, kk-KZ, km-KH, kn-IN, ko, ky-KG, lt-LT, lv-LV, mk-MK, ml-IN, mr-IN, ms, my, nb, nl, pa-IN, pl, pt-BR, pt-PT, ro-RO, ru, sk-SK, sl-SI, sq-AL, sr, sv, sw, ta-IN, te-IN, th, tl-PH, tr, ug, uk-UA, ur, vi, yue, zh-CN, zh-HK, zh-Hant"}
{"level":30,"time":"2023-07-27T14:18:07.631Z","msg":"locale: Preferred locales:  en-US, en"}
{"level":30,"time":"2023-07-27T14:18:07.632Z","msg":"locale: Matched locale: en"}
{"level":30,"time":"2023-07-27T14:18:07.649Z","msg":"locale: Text info direction for en: ltr"}
{"level":30,"time":"2023-07-27T14:18:07.649Z","msg":"getSystemTraySetting saw --use-tray-icon flag. Returning MinimizeToSystemTray"}
{"level":30,"time":"2023-07-27T14:18:07.650Z","msg":"app ready"}
{"level":30,"time":"2023-07-27T14:18:07.651Z","msg":"starting version 6.25.0-beta.1"}
{"level":30,"time":"2023-07-27T14:18:07.651Z","msg":"media access status [object Undefined] [object Undefined]"}
{"level":30,"time":"2023-07-27T14:18:07.652Z","msg":"got fast theme-setting value system"}
{"level":30,"time":"2023-07-27T14:18:07.654Z","msg":"got fast theme-setting value system"}
{"level":30,"time":"2023-07-27T14:18:07.654Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2023-07-27T14:18:07.654Z","msg":"Initializing BrowserWindow config: {\"show\":false,\"width\":1916,\"height\":2116,\"minWidth\":300,\"minHeight\":200,\"autoHideMenuBar\":false,\"titleBarStyle\":\"default\",\"titleBarOverlay\":false,\"backgroundColor\":\"#3a76f0\",\"webPreferences\":{\"devTools\":true,\"spellcheck\":true,\"enableBlinkFeatures\":\"CSSPseudoDir,CSSLogical\",\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"sandbox\":false,\"contextIsolation\":true,\"preload\":\"[REDACTED]/preload.bundle.js\",\"backgroundThrottling\":true,\"enablePreferredSizeMode\":true,\"disableBlinkFeatures\":\"Accelerated2dCanvas,AcceleratedSmallCanvases\"},\"icon\":\"[REDACTED]/images/signal-logo-desktop-linux.png\",\"x\":0,\"y\":0}"}
{"level":30,"time":"2023-07-27T14:18:07.660Z","msg":"spellcheck: user locales: [\"en-US\",\"en\"]"}
{"level":30,"time":"2023-07-27T14:18:07.660Z","msg":"spellcheck: available spellchecker languages: [\"af\",\"bg\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"de-DE\",\"el\",\"en\",\"en-AU\",\"en-CA\",\"en-GB\",\"en-GB-oxendict\",\"en-US\",\"es\",\"es-419\",\"es-AR\",\"es-ES\",\"es-MX\",\"es-US\",\"et\",\"fa\",\"fo\",\"fr\",\"fr-FR\",\"he\",\"hi\",\"hr\",\"hu\",\"hy\",\"id\",\"it\",\"it-IT\",\"ko\",\"lt\",\"lv\",\"nb\",\"nl\",\"pl\",\"pt\",\"pt-BR\",\"pt-PT\",\"ro\",\"ru\",\"sh\",\"sk\",\"sl\",\"sq\",\"sr\",\"sv\",\"ta\",\"tg\",\"tr\",\"uk\",\"vi\"]"}
{"level":30,"time":"2023-07-27T14:18:07.660Z","msg":"spellcheck: setting languages to: [\"en-US\",\"en\"]"}
{"level":30,"time":"2023-07-27T14:18:07.666Z","msg":"MainSQL: updateSchema:\n  Current user_version: 84;\n  Most recent db schema: 84;\n  SQLite version: 3.39.4;\n  SQLCipher version: 4.5.3 community;\n  (deprecated) schema_version: 367;\n"}
{"level":30,"time":"2023-07-27T14:18:07.903Z","msg":"got fast theme-setting value system"}
{"level":30,"time":"2023-07-27T14:18:08.359Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2023-07-27T14:18:08.363Z","msg":"System tray service: created"}
{"level":30,"time":"2023-07-27T14:18:08.363Z","msg":"System tray service: updating main window. Previously, there was not a window, and now there is"}
{"level":30,"time":"2023-07-27T14:18:08.363Z","msg":"System tray service: rendering no tray"}
{"level":30,"time":"2023-07-27T14:18:08.363Z","msg":"System tray service: enabling"}
{"level":30,"time":"2023-07-27T14:18:08.363Z","msg":"System tray service: rendering the tray"}
{"level":30,"time":"2023-07-27T14:18:08.363Z","msg":"System tray service: creating the tray"}
{"level":30,"time":"2023-07-27T14:18:08.365Z","msg":"Begin ensuring permissions"}
{"level":30,"time":"2023-07-27T14:18:08.366Z","msg":"Ensuring file permissions for 4 files"}
{"level":30,"time":"2023-07-27T14:18:08.367Z","msg":"Finish ensuring permissions in 2ms"}
{"level":30,"time":"2023-07-27T14:18:08.600Z","msg":"Prevent display sleep service: allowing display sleep"}
{"level":30,"time":"2023-07-27T14:18:08.600Z","msg":"Background throttling enabled because no call is active"}
{"level":30,"time":"2023-07-27T14:18:09.580Z","msg":"updater/start: Updates disabled - not starting new version checks"}
{"level":30,"time":"2023-07-27T14:18:09.580Z","msg":"System tray service: setting unread count to 15"}
{"level":30,"time":"2023-07-27T14:18:09.580Z","msg":"System tray service: rendering the tray"}
{"level":30,"time":"2023-07-27T14:18:09.582Z","msg":"App loaded - time: 1933"}
{"level":30,"time":"2023-07-27T14:18:09.582Z","msg":"SQL init - time: 17"}
{"level":30,"time":"2023-07-27T14:18:09.582Z","msg":"Preload - time: 448"}
{"level":30,"time":"2023-07-27T14:18:09.582Z","msg":"WebSocket connect - time: 912"}
{"level":30,"time":"2023-07-27T14:18:09.582Z","msg":"Processed count: 0"}
{"level":30,"time":"2023-07-27T14:18:09.582Z","msg":"Messages per second: 0"}
{"level":40,"time":"2023-07-27T14:18:09.592Z","msg":"crashReports: 4 pending dumps found"}
{"level":30,"time":"2023-07-27T14:19:53.442Z","msg":"System tray service: rendering the tray"}
zsh: segmentation fault (core dumped)  signal

It makes Signal basically unusable for me. I have to start it up ~10 times to get one session to stick.

@ghost
Copy link

ghost commented Jul 31, 2023

@jamesob I have observed two kinds of crashes:

  1. failure to start (Wayland: does not show window without a patch on newer electron versions #6368)
  2. failure to keep running for more than 10 seconds after successful start

The first kind can be solved by sticking with 6.18.1 and that isn't a solution, just what I and other Wayland users do to get by. It can take multiple attempts to start 6.18.1 as well, but usually less than 5.

@ghost
Copy link

ghost commented Aug 21, 2023

Sway workaround for startup crash:

for_window [app_id="signal"] floating enable

Found the workaround here: element-hq/element-desktop#1026 (comment)

@ofosos
Copy link

ofosos commented Sep 1, 2023

Same problem on river/wayland, same fix as for Sway:

riverctl rule-add float -app-id "signal*"

@secresearch-rg
Copy link

secresearch-rg commented Oct 13, 2023

The issue also exists using GNOME 45.0 (Arch Linux x86_64, up-to-date, both on the regular Linux and Linux LTS kernel).
As this is no floating window manager I would assume a similar workaround won't exist.
Makes me wonder why the workaround applies for Sway and River.

For me, the issue only started getting bad about maybe 2-4 weeks ago - did not have the crashes as often previously.
Maybe every other day. Now the crashes with Environment Variables set to use Wayland are reproducible on almost every launch of the Signal app.

Signal however works fine when using XWayland.

Signal is at version 6.34.0 from the Arch Linux repos.

@deviant
Copy link

deviant commented Oct 24, 2023

I think this may be related to whether the compositor has the window marked as maximized or not. I'm running Sway. When running under XWayland, toggling the window between floating or not produces log lines like the following:

Updating BrowserWindow config: %s {"maximized":false,"autoHideMenuBar":false,"fullscreen":false,"width":1122,"height":1098,"x":2319,"y":2151}

where "maximized":false when it's floating, and "maximized":true when it's tiled. Under Wayland, with --ozone-platform-hint=auto, it unfortunately crashes before it can emit the relevant log line, but I imagine the maximized attribute changes similarly. I initially thought it might be due to the compositor forcibly resizing the surface, but manually resizing works just fine.

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

No branches or pull requests