Regression with new AMD/Intel patches in 6.4.9/6.4.10 prevent Signal from functioning.

From: Ehud Gavron
Date: Sun Aug 13 2023 - 09:10:16 EST


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)


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature