Hello, please CC or BCC me on any responses. I'm not on LKML because typically I don't need to be.
In this case, however, there is a kernel regression.
TL;DR when using stock 6.4.8 Signal works fine. With 6.4.9+ (6.4.9 and 6.4.10 tested) it errors out.
Logs were attached, but LKML mail filters said narp. I'll put a DIFF -U0 at the end here
for those to whom that will provide a clue.
Story:
When setting CONFIG_SPECULATION_MITIGATIONS=n and recompiling the kernel, 6.4.10 works from
the command line (e.g. "$ signal-desktop") but does not work from the Gnome panel. ("Does not work"
means the processes sit there but no window ever pops up. Firing up a command line version says it's
the second incarnation and *immediately* displays a window.)
Summary:
A kernel change that doesn't require ABI changes should not affect user-mode code. The changes
introduced after 6.4.8 do affect user-mode code, and in this example, Signal.
6.4.8 - Signal runs fine. From either the command line or the panel icon.
6.4.9/6.4.10 - Fails to run on either. It displays an error message on screen and if on CLI one on there also. (was attached but
LKML said narp)
6.4.10 with CONFIG_SPECULATION_MITIGATION=n allows Signal to start from the CLI, but starting from Gnome's panel
results in a lack of displayed window. The processes look fine in the background (e.g. ps -eaf | grep -i signal looks good)
and starting a new signal from CLI indicates it's #2 and IMMEDIATELY displays the window. Exiting that will remove all
Signal processes.
Rebooting to 6.4.8 instantly restores normal behavior (works from Gnome panel icon; works from CLI; no errors).
There is some regression introduced by CONFIG_SPECULATION_MITIGATIONS that is preventing this (and likely other)
user-mode from working.
I'm available to alpha-test. I'm not on LKML so just CC or BCC me on the reply. I'm a newbie at CPU pathways but I am
a contributor on the BC43 driver. And yes I did read section 3 of the FAQ on posting to LKML. If this makes you want to
flame me, please enjoy, but also contribute something useful. Like the solution, the possible issue, or a generic comment.
Best regards,
Ehud Gavron
Tucson, Arizona
> $ diff -U0 signal-desktop-6.4.8.log signal-desktop-6.4.10.log
> --- signal-desktop-6.4.8.log 2023-08-11 13:47:37.371278092 -0700
> +++ signal-desktop-6.4.10.log 2023-08-11 13:45:46.134110820 -0700
> @@ -13,2 +13,5 @@
> -(node:3844) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the
> Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
> -(Use `exe --trace-deprecation ...` to show where the warning was created)
> +Render process is gone: Error: Reason: crashed, Exit Code: 132
> + at App.<anonymous> (/opt/Signal/resources/app.asar/app/global_errors.js:88:7)
> + at App.emit (node:events:525:35)
> + at WebContents.<anonymous> (node:electron/js2c/browser_init:2:89989)
> + at WebContents.emit (node:events:513:28)