signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.63k stars 2.66k forks source link

App doesn't start after update #5726

Closed ygoe closed 1 year ago

ygoe commented 2 years ago

Bug Description

The app was running fine and presented me an upgrade notification as so often. I clicked on it, it installed its upgrade and tried to start the app again, as always. But today, it would sith there with its 5 processes, eating CPU time, doing nothing. No window appears. I have to kill the processes. Retrying has the same effect.

I cannot use Signal on Windows anymore.

Steps to Reproduce

Install the latest upgrade? I don't know.

Screenshots

Nothing to see.

Platform Info

Signal Version: Unknown, but it was auto-upgraded today. Operating System: Windows 10 21H2 Linked Device Version: Android 11

Link to Debug Log

Not accessible.

hiqua commented 2 years ago

Can you add logs? https://support.signal.org/hc/en-us/articles/360007318591-Debug-Logs-and-Crash-Reports#desktop_debug

wdouglascampbell commented 2 years ago

Same issue. Log attached main.log .

ygoe commented 2 years ago

Here are my logs. logs.zip

scottnonnenberg-signal commented 2 years ago

@wdouglascampbell @ygoe What happens if you go to https://signal.org/download and download the latest installer and run it? It might be a corrupt install. You won't lose data if you install on top of what you have now - but if you uninstall (since you're on Windows), your messages/conversations will be deleted.

ygoe commented 2 years ago

It's the same. After the small installation progress window closes, I see a bigger window open elsewhere and it closes in the same instant. I can't even see its title or any content it closes so fast. And then I have 5 signal.exe processes, two of them eating 7.5 and 8.5% CPU time, respectively. For minutes at least. I killed them again. You have to kill all of them, not just the main process because one of the child processes will just carry on.

So it's probably the app itself that has a problem, or maybe my profile.

ygoe commented 2 years ago

I upgraded the app on another computer in a different network to 5.27.1 and that still works. So maybe my local profile is broken or was damaged by the app during/after the last upgrade. In a way that breaks the app completely.

wdouglascampbell commented 2 years ago

Ditto to what @ygoe wrote. This is my exact experience. I even removed the Signal %appdata% folder from system after a full uninstall and then reinstall from scratch with the latest Signal Desktop installer. Same result.

wdouglascampbell commented 2 years ago

I am running Windows 11 on this computer. Not sure if that could be related though reverting to version 5.23.1 still runs fine on my Windows 11 computer.

scottnonnenberg-signal commented 2 years ago

This is really strange - we have no error message in the log or to the command prompt, no window to inspect, nothing in our logs. Maybe you could try to run Electron Quick Start to see if it's just Electron 16 on that machine? https://github.com/electron/electron-quick-start

wdouglascampbell commented 2 years ago

I just ran the electron-quick-start. The window for it loads and allows me to interact with its menus.

In a VM running Windows 11, I did successfully run the 5.27.1 installer. Still not sure why things are not working anymore on my main machine though.

scottnonnenberg-signal commented 2 years ago

If you're pretty technical, you might try to dig deeper into windows tracing solutions, to see what exactly is happening with Signal Desktop when it gets hung up. It seems like it isn't ever running our client-side code, which means that it's an Electron/Chromium bug somehow, so we need data to hand to them for when we file that bug.

ygoe commented 2 years ago

I am pretty technical, but not with anything Electron. Not sure how to help here. Can I download an older version of the app?

ygoe commented 2 years ago

No, old version 5.27.0 (download URL guessed, number taken from GitHub releases) is locked out.

Database startup error:

Error: Error: SQL: User version is 48 but the expected maximum version is 46. Did you try to start an old version of Signal?
    at updateSchema ([REDACTED].unpacked\ts\sql\mainWorker.bundle.js:28234:15)
    at Object.initialize ([REDACTED].unpacked\ts\sql\mainWorker.bundle.js:22714:39)
    at MessagePort.<anonymous> ([REDACTED].unpacked\ts\sql\mainWorker.bundle.js:25729:36)
    at MessagePort.[nodejs.internal.kHybridDispatch] (node:internal/event_target:559:20)
    at MessagePort.exports.emitMessage (node:internal/per_context/messageport:23:28)
    at Worker.<anonymous> ([REDACTED]\ts\sql\main.js:44:34)
    at Worker.emit (node:events:394:28)
    at MessagePort.<anonymous> (node:internal/worker:236:53)
    at MessagePort.[nodejs.internal.kHybridDispatch] (node:internal/event_target:559:20)
    at MessagePort.exports.emitMessage (node:internal/per_context/messageport:23:28)
Unhandled Promise Rejection

Error: Not initialized
    at MainSQL.close ([REDACTED]\ts\sql\main.js:76:19)
    at BrowserWindow.<anonymous> ([REDACTED]\app\main.js:457:19)

Then a single signal.exe process eats CPU until I kill it. It won't even shut down cleanly after these errors.

Guess I'm stuck here. I can clear all data and retry or we'll find the issue and fix it soon. Typing on the phone isn't comfortable.

wdouglascampbell commented 2 years ago

5.27.0 has the same issue anyway. I had to downgrade to 5.23.1.

wdouglascampbell commented 2 years ago

I'm technical but also am not familiar with Electron. If you have any direction, I am willing to make some attempts at troubleshooting.

wdouglascampbell commented 2 years ago

I should mention as well, that after starting Signal 5.27.0 and above (true for Beta version as well), 5 processes are listed in Task Manager. If I then "start" Signal again, it looks like one of those dies and another replaces it but the Signal window appears. It is just empty. It has the menus but clicking on Preferences for example doesn't result in a response.

ygoe commented 2 years ago

So what can I do now? Could I backup and delete my profile to restart with a fresh environment? Could I restore the profile later to have my messages back?

r8j3 commented 2 years ago

Probable fix :metal:

Had the same issue, old version worked fine, as soon as I the app auto updated and relaunched, there was the blue dot screen (... forever ... waiting... :thinking:)

Macbook Pro MacOS Catalina (10.15.6) Signal download name & version: signal-desktop-mac-universal-5.27.1.dmg ONLY if you are okay with clearing your Data from the desktop app Preferences => Privacy => Clear Application Data => Clear Data [button]. Stop the app, and restart it (may be delete and reinstall the app).

Optional: If the above does not help try this also. Preferences => General => Updates - UNCheck (should NOT be checked/selected) Automatically download updates.

This one, don't quote me on it :grimacing:

scottnonnenberg-signal commented 2 years ago

@r8j3 So, the same version of the app but with fresh data on disk allowed it to start up?

@ygoe @wdouglascampbell You should try this as well, but less destructively: the location of your application data is here: https://github.com/signalapp/Signal-Desktop/blob/development/CONTRIBUTING.md#the-staging-environment

If you rename that directory then start up Desktop, it will be just like you clicked 'Clear Data.' But you can restore back to it!

If that works, we'll want to know more about your data - how big is the database, how big are the attachments, etc.

Lastly, another thing you can try is to copy your attachments, stickers, database (sql/db.sqlite), and config.json from your old directory and the new install. It won't have all the electron-specific data in it, but it will have all of your data.

ygoe commented 2 years ago

I renamed that directory (total 136 MB) and started Signal. Same behaviour, no window appears, eats CPU time. So my data isn't interesting.

image

The profile directory is recreated and contains some files (total 2.6 MB). What questions do you have against that directory?

wdouglascampbell commented 2 years ago

Yes. I already done what @scottnonnenberg-signal suggested even before getting involved in this thread. Clearing the data does not have any effect and I see the same result as @ygoe in task manager.

scottnonnenberg-signal commented 2 years ago

@ygoe @wdouglascampbell Well, if your data is okay, I'd say that the next step is to try deeper Electron debugging tools: https://www.electronjs.org/docs/latest/tutorial/application-debugging#main-process, and maybe the ELECTRON_ENABLE_LOGGING environment variable and the --enable-logging command-line option will help?

scottnonnenberg-signal commented 2 years ago

Another thing to try is to start Chrome on that same machine. It's generally newer than the Chromium embedded in Electron, but it's an important datapoint.

r8j3 commented 2 years ago

@r8j3 So, the same version of the app but with fresh data on disk allowed it to start up?

I had an old version of Signal running, probably about 6 months old, then 2 days back I tried the auto install, that gave me issues, so I deleted the app, downloaded signal-desktop-mac-universal-5.27.1.dmg (latest version) that is when I ran install, again ran into this the same stuck on blue screen.

@scottnonnenberg-signal , considering that @wdouglascampbell had tried the data clear out earlier, I would suggest a new install after a reboot, make sure that no Chrome process is running OR be sure to kill all Chrome related apps before installing Signal, that was the 2nd part of what may have worked for me.

ygoe commented 2 years ago

I'll try that tomorrow. Just so much: Chrome (auto-updated) runs fine here. I'm currently using Brave as my primary browser, also Chromium-based. So Chromium is also fine.

wdouglascampbell commented 2 years ago

@r8j3 I have tried a re-install after reboot ensuring that no Chrome process was running but the result is still the same. @scottnonnenberg-signal I'll try to check out the Electron debugging tools link you mentioned and see if I can figure anything out.

fiddydiddy commented 2 years ago

same issue on ubuntu 20.04.3 LTS.

Tried to open the app this morning and nothing happens, go into system monitor and there are processes running but nothing will appear on the screen. Tried uninstall and fresh install from signal website and same issue:

image

After about 10-15mins of leaving it in this state, it just suddenly popped up and said "optimizing application" and now its up on my screen.

After i close and re-open its now opening almost instantly. So it seems like its doing some sort of silent update in the background or getting stuck and then eventually loads.

Current signal version 5.27.1

ygoe commented 2 years ago

I started Signal with the --enable-logging parameter. Here's the output:

Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR C:\Users\Yves\AppData\Local\Programs\signal-desktop\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: C:\Users\Yves\AppData\Roaming\Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
[43300:0111/223036.911:ERROR:gpu_process_host.cc(968)] GPU process exited unexpectedly: exit_code=-1073741819
[43300:0111/223036.912:WARNING:gpu_process_host.cc(1274)] The GPU process has crashed 1 time(s)
[43300:0111/223037.141:ERROR:gpu_process_host.cc(968)] GPU process exited unexpectedly: exit_code=-1073741819
[43300:0111/223037.141:WARNING:gpu_process_host.cc(1274)] The GPU process has crashed 2 time(s)
[43300:0111/223037.357:ERROR:gpu_process_host.cc(968)] GPU process exited unexpectedly: exit_code=-1073741819
[43300:0111/223037.357:WARNING:gpu_process_host.cc(1274)] The GPU process has crashed 3 time(s)
[43300:0111/223037.397:INFO:CONSOLE(33)] "The vm module of Node.js is deprecated in the renderer process and will be removed.", source: node:electron/js2c/renderer_init (33)
[43300:0111/223037.784:ERROR:gpu_process_host.cc(968)] GPU process exited unexpectedly: exit_code=-1073741819
[43300:0111/223037.784:WARNING:gpu_process_host.cc(1274)] The GPU process has crashed 4 time(s)
[43300:0111/223037.866:INFO:CONSOLE(33)] "The vm module of Node.js is deprecated in the renderer process and will be removed.", source: node:electron/js2c/renderer_init (33)
[43300:0111/223038.037:ERROR:gpu_process_host.cc(968)] GPU process exited unexpectedly: exit_code=-1073741819
[43300:0111/223038.037:WARNING:gpu_process_host.cc(1274)] The GPU process has crashed 5 time(s)
[43300:0111/223038.278:ERROR:gpu_process_host.cc(968)] GPU process exited unexpectedly: exit_code=-1073741819
[43300:0111/223038.278:WARNING:gpu_process_host.cc(1274)] The GPU process has crashed 6 time(s)
[43300:0111/223038.382:WARNING:gpu_process_host.cc(996)] Reinitialized the GPU process after a crash. The reported initialization time was 0 ms
(node:40640) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `Signal --trace-deprecation ...` to show where the warning was created)

Then it sits there silently, eating CPU, until I press Ctrl+C which terminates all processes.

Looks like a critical bug in the Electron framework. Maybe you should revert to its previous version? But you know more about that.

wdouglascampbell commented 2 years ago

This https://github.com/signalapp/Signal-Desktop/issues/5721#issuecomment-1006937268 provided the solution to get things to run. I added the --disable-gpu command-line switch and Signal 5.27.1 loaded.

wdouglascampbell commented 2 years ago

I should note that I have an Nvidia chip on my laptop not the Intel chip in issue 5721. I'm going to see if installing this latest update will allow loading without the disable-gpu switch.

wdouglascampbell commented 2 years ago

I can confirm that after updating my Nvidia driver, the issue has now gone away and I do not need to use the --disable-gpu switch.

ygoe commented 2 years ago

I have skipped to upgrading my graphics driver (Intel HD Graphics 4000) and can confirm that Signal works again. My driver was from 2015 and Windows said I already had the most recent version. After googling for some time I found a newer one from 2020 on the Intel website (Intel website search didn't find it).

Yes, my CPU is old, but it's still perfectly good for everything. Technology hasn't evolved as much in the last 10 years as in the 10 years before.

ygoe commented 2 years ago

Well, now Signal works again. But since the installation of the Intel graphics driver, I keep getting a language selection button on my taskbar. It has my default layout de-DE and the additional unwanted en-US. The English layout doesn't even appear in Windows language settings. I have to install it to remove it. But after rebooting it keeps coming back. I've tried everything from the first couple Google pages, it's hopeless. Windows definitely needs a replacement, something from scratch, without all those decades of legacy that nobody can control anymore.

KWWPiDev commented 2 years ago

TL;DR: signal-desktop hangs on "making app single instance", --disable-gpu doesn't work. however it

WORKS if I LOCK THE SCREEN AND THEN LOG BACK IN, also

works if I login as a 2nd user in ubuntu.

Seems related to the electron problem described in many tickets including this one.

ubuntu 20.04 with nvidia 510 driver, signal-desktop v5.41. works fine, 5.42 and 5.43 have this problem of no app appears, no logs are generated, and the signal-desktop terminal command hangs at "making app single instance". 5.43 works after I lock the screen and then log back in.

indutny-signal commented 2 years ago

Could you give a try to 5.45.0-beta.1 to see if it works, please? Thanks!

KWWPiDev commented 2 years ago

5.45.0-beta.1 seems to have the same problem: after reboot does not load, both signal-desktop and beta stop outputting logs after "making app single instance".

WORKAROUND still works: LOCK SCREEN then log back in: if I lock the ubuntu 20.04 desktop and then log back in both signal-desktop 5.44.1 and signal-desktop-beta 5.45.0-beta.1 work fine.

I'll keep trying the newer signal-desktop and signal-desktop-beta versions as they come out and will report if/when one fixes them, I know there's a lot of work going on to upgrade electron to 18 or 19 so hopefully this will go away once that stabilizes.

adyotag commented 1 year ago

On my end, I am getting the same issue - the app (signal-desktop) doesn't start up at all. It used to work fine before. I'm on Kubuntu and here's a log:

adyota@Curium ~> signal-desktop                                                                 (base) 
Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /opt/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/adyota/.config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
making app single instance
{"level":30,"time":"2023-02-10T03:03:55.045Z","msg":"app.ready: preferred system locales: en-US, en-US, en-US, en, en"}
{"level":30,"time":"2023-02-10T03:03:55.048Z","msg":"Loading preferred system locale: 'en-US'"}
{"level":40,"time":"2023-02-10T03:03:55.049Z","msg":"Problem loading messages for locale 'en-US', Error: ENOENT, _locales/en-US/messages.json not found in [REDACTED]"}
{"level":40,"time":"2023-02-10T03:03:55.049Z","msg":"Falling back to parent language: 'en'"}
{"level":30,"time":"2023-02-10T03:03:55.077Z","msg":"app ready"}
{"level":30,"time":"2023-02-10T03:03:55.078Z","msg":"starting version 6.5.0"}
{"level":30,"time":"2023-02-10T03:03:55.078Z","msg":"media access status [object Undefined] [object Undefined]"}
{"level":30,"time":"2023-02-10T03:03:55.079Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2023-02-10T03:03:55.080Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2023-02-10T03:03:55.080Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2023-02-10T03:03:55.081Z","msg":"getSystemTraySetting had no flags and did no DB lookups. Returning DoNotUseSystemTray"}
{"level":30,"time":"2023-02-10T03:03:55.081Z","msg":"Initializing BrowserWindow config: {\"show\":false,\"width\":65528,\"height\":65504,\"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\":1515,\"y\":619}"}
{"level":30,"time":"2023-02-10T03:03:55.108Z","msg":"spellcheck: user locale: en-US"}
{"level":30,"time":"2023-02-10T03:03:55.109Z","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-02-10T03:03:55.109Z","msg":"spellcheck: setting languages to:  [\"en-US\"]"}
{"level":30,"time":"2023-02-10T03:03:55.109Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2023-02-10T03:03:55.117Z","msg":"MainSQL: updateSchema:\n  Current user_version: 72;\n  Most recent db schema: 77;\n  SQLite version: 3.39.2;\n  SQLCipher version: 4.5.2 community;\n  (deprecated) schema_version: 309;\n"}
[4057:0209/220355.237928:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=132
[4057:0209/220355.376387:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=132
[4057:0209/220355.514528:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=132
[4244:0209/220355.520351:ERROR:gpu_init.cc(523)] Passthrough is not supported, GL is disabled, ANGLE is 
[4057:0209/220355.637600:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=132
[4257:0209/220355.643146:ERROR:gpu_init.cc(523)] Passthrough is not supported, GL is disabled, ANGLE is 
[4057:0209/220355.764865:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=132
[4266:0209/220355.771972:ERROR:gpu_init.cc(523)] Passthrough is not supported, GL is disabled, ANGLE is 
[4057:0209/220355.908903:ERROR:gpu_process_host.cc(991)] GPU process exited unexpectedly: exit_code=132
[4057:0209/220355.908920:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.
fish: Job 1, 'signal-desktop' terminated by signal SIGTRAP (Trace or breakpoint trap)

EDIT: I am on version 6.5 Screenshot_20230209_223951

scottnonnenberg-signal commented 1 year ago

@adyotag Have you tried started it with the --disable-gpu command-line argument?

adyotag commented 1 year ago

@scottnonnenberg-signal I have tried doing that, but the same issue results. I'm on a Lenovo T480s and thus only have integrated graphics. I tried installing signal-desktop-beta (verson 6.6.0), and that seems to have worked.

scottnonnenberg-signal commented 1 year ago

@adyotag Glad to hear the latest beta is working for you. I'm going to close and lock this, since it's so generic that everyone finds this bug and comments on it with their different error.