signalapp / Signal-Desktop

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

Blue screen after update - stuck #3281

Closed MenooMeow closed 4 years ago

MenooMeow commented 5 years ago

Bug Description

Did auto update and now it's stuck on a total blue screen. No contents in window. Only pull down menu. No progress report - nothing.

Steps to Reproduce

  1. Do auto-update when prompted.
  2. Program relaunches automatically (or manually).
  3. Blue sreen

Actual Result:

Blue window - no contents - only pull down menus.

Expected Result:

to work normally after update

Screenshots

image

Platform Info

Signal Version:

1.23.2

Operating System:

Windows 10

Linked Device Version:

Not available right now

Link to Debug Log

Will not come up... pull down menu is there but it does nothing when selected.

kenpowers-signal commented 4 years ago

@naconner That strace result is interesting. I'm seeing a lot of Recurso indisponível temporariamente errors, often with PIDs (process IDs) and FDs (file descriptors) listed. For instance:

[pid 28016] poll([{fd=10, events=POLLIN}, {fd=11, events=POLLIN}, {fd=35, events=POLLIN}, {fd=52, events=POLLIN}], 4, 0) = 0 (Timeout)

Would you be able to find out for us what each of those fd values points to? For instance, given that line, while strace/Signal was still running, you could run:

readlink /proc/28016/fd/10
readlink /proc/28016/fd/11
readlink /proc/28016/fd/35
readlink /proc/28016/fd/52

More information on PIDs and FDs here which you may find helpful: https://www.cyberciti.biz/faq/linux-find-all-file-descriptors-used-by-a-process/

CrypticaScriptura commented 4 years ago

Thanks, @kenpowers-signal. I'll dig into that, although to confirm right away (https://github.com/signalapp/Signal-Desktop/issues/4014#issuecomment-595801600), it's definitely affected by the locale. My systems are on pt_PT. Starting signal-desktop with LANG=en_US had it run exactly as expected, although curiously, the application interface was still fully in Portuguese.

kenpowers-signal commented 4 years ago

@naconner What happens if you use LC_ALL as opposed to LANG?

CrypticaScriptura commented 4 years ago

@kenpowers-signal With LC_ALL, the application interface remains in pt_PT, though spends some time first on 'Optimising application...' (in Portuguese) before going to the message list and 'Bem-vindo ao Signal'.

scottnonnenberg-signal commented 4 years ago

We've released v1.32.1-beta.1 and v1.32.1 which should address the blue screens people have been seeing on Linux in some configurations. Unfortunately, it means that non-english spell check has been disabled for now. Let us know how it works for you!

CrypticaScriptura commented 4 years ago

@scottnonnenberg-signal Wonderful, those updates resolved the issue on both release and beta. :smile:

maysara commented 4 years ago

I've tried a few combinations, so I'm running the v1.32.1-beta.1 , the behaviour I get is similar to what that environment would produce with choromium-browser (I know its using electron its not using chromioum), that is, using chromioum, without the --ignore-gpu-blacklist and my current usage which utilizes electron, both produce a white screen, where clicking on works, selecting and copying text works and gets it to clipboard, but nothing is visible.

what works with chromium is not working with signal/electron!!

I've tried adding and removing combinations of flags --disable-gpu --disable-software-rasterizer --no-sandbox --enable-gup --ignore-gpu-blacklist but it still gives me the same output. also LANG and LC_ALL variables...

strace consistantly fails to open fd numbered 35 and 47, they seem to be sockets (I'm running it inside docker)

I've tried to reduce the case to the following; the last setup uses the following (DockerFile): FROM ubuntu RUN apt-get update ADD https://updates.signal.org/desktop/apt/keys.asc /root/signal-key.asc ADD signal-xenial.list /root/signal-xenial.list RUN apt-get install -y gnupg apt-transport-https libasound2 ca-certificates libx11-xcb1 libcanberra-gtk-module libcanberra-gtk3-module xtrace RUN apt-get upgrade -y RUN apt-key add /root/signal-key.asc RUN cp /root/signal-xenial.list /etc/apt/sources.list.d/signal-xenial.list RUN apt-get update

RUN apt-get install -y signal-desktop-beta

CMD signal-desktop-beta --verbose --enable-logging --no-sandbox

and I run it using

docker run --rm -e DISPLAY=DOCKER_INTERFACE_IP:0 IMAGE_NAME

I also enable X listening and allow connectoin (for testing) from everywhere using:

xhost +

and I get:

Set Windows Application User Model ID (AUMID) { appUserModelId: 'org.whispersystems.signal-desktop-beta' } NODE_ENV production NODE_CONFIG_DIR /opt/Signal 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: /root/.config/Signal Beta config/get: Did not find user config file, cache is now empty object x-attr dependncy did not load successfully config/get: Did not find ephemeral config file, cache is now empty object LaunchProcess: failed to execvp: xdg-settings [6:0313/215149.707735:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory [29:0313/215149.743700:ERROR:gl_implementation.cc(277)] Failed to load libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory [29:0313/215149.747371:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization [6:0313/215150.319560:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix") [6:0313/215150.347259:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix") [42:0313/215150.417905:WARNING:x11_util.cc(1443)] X error received: serial 199, error_code 1 (BadRequest (invalid request code or no such operation)), request_code 130, minor_code 1 (X_ShmAttach) [42:0313/215150.418694:WARNING:x11_util.cc(1443)] X error received: serial 200, error_code 1 (BadRequest (invalid request code or no such operation)), request_code 130, minor_code 1 (X_ShmAttach) [42:0313/215150.420122:WARNING:x11_util.cc(1443)] X error received: serial 201, error_code 1 (BadRequest (invalid request code or no such operation)), request_code 130, minor_code 3 (X_ShmPutImage) [42:0313/215150.433797:WARNING:x11_util.cc(1443)] X error received: serial 214, error_code 1 (BadRequest (invalid request code or no such operation)), request_code 130, minor_code 3 (X_ShmPutImage) (node:57) Electron: Loading non-context-aware native module in renderer: '/tmp/.org.chromium.Chromium.JYkzFg'. This is deprecated, see https://github.com/electron/electron/issues/18397. (node:57) Electron: Loading non-context-aware native module in renderer: '/tmp/.org.chromium.Chromium.JYkzFg'. This is deprecated, see https://github.com/electron/electron/issues/18397. [6:0313/215152.344930:WARNING:quota_manager.cc(1704)] No storage quota provided in QuotaSettings. [6:0313/215152.603225:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix") [42:0313/215214.590928:WARNING:x11_util.cc(1443)] X error received: serial 220, error_code 1 (BadRequest (invalid request code or no such operation)), request_code 130, minor_code 2 (X_ShmDetach) [42:0313/215214.591468:WARNING:x11_util.cc(1443)] X error received: serial 221, error_code 1 (BadRequest (invalid request code or no such operation)), request_code 130, minor_code 2 (X_ShmDetach)

and the white screen.

I can confirm chromioum eventually worked with options that are not working with signal/electron, local variables are not having any affect.

maysara commented 4 years ago

I've manually defined the version to be used to be 1.31.0 in my setup; and added --disable-dev-shm-usage; this seems to get me beyound the blue screen issue, yet the latest 1.32 version is giving me the "white screen issue" !

alexanderadam commented 4 years ago

I can confirm the new "white screen issue" within Docker. Should we create a new issue for that?

scottnonnenberg-signal commented 4 years ago

@alexanderadam Yes, it is a new issue. I'm closing this one now.

hrehfeld commented 4 years ago

This is not fixed, please reopen ASAP, signal is very unreliable right now: https://i.imgur.com/vSbelcp.png

version window shows, preferences also renders blue. On loading, sometimes the contact list and messages show for a fraction of a second, then everything turns blue.

I suspect that this might be caused by killing the app (e.g. during crash, disk space, reboot while the app is running). Does not seem to be related to updates.

I'm on Archlinux:

$ pacman -Qi signal-desktop
Name            : signal-desktop
Version         : 1.34.3-1

$ pacman -Qi electron 
Name            : electron
Version         : 9.0.5-1

Deleting .config/Signal helps, but then you need to reconnect...

--disable-software-rasterizer or --disable-dev-shm-usage or env LANG=en_US.UTF-8 LC_TIME=en_US.UTF-8 signal-desktop doesn't help.

Electron snippet above shows a window with text/content that looks valid. Same with /usr/bin/electron.

Nothing in the terminal looks suspicious, but it seems there's personal data there, so can't post. Last lines:

{"name":"log","hostname":"hostname","pid":19469,"level":30,"time":"2020-07-13T13:40:04.395Z","msg":"got request PUT /api/v1/queue/empty","v":0}
{"name":"log","hostname":"hostname","pid":19469,"level":30,"time":"2020-07-13T13:40:04.397Z","msg":"MessageReceiver: finished processing messages after 'empty', now waiting for application","v":0}
{"name":"log","hostname":"hostname","pid":19469,"level":30,"time":"2020-07-13T13:40:04.397Z","msg":"MessageReceiver: emitting 'empty' event","v":0}
{"name":"log","hostname":"hostname","pid":19469,"level":30,"msg":"updater/start: Updates disabled - not starting new version checks","time":"2020-07-13T13:40:04.401Z","v":0}

Are there any other issues related to this? The issue tracker is so unsorted...

scottnonnenberg-signal commented 4 years ago

We haven't upgraded to Electron 9 yet. You'll need to follow up with your Signal Desktop packager.

hrehfeld commented 4 years ago

But it definitely works when you delete .config/Signal and reconnect...

mvasi90 commented 4 years ago

In Docker or Podman container, to solve the white screen issue, you can start signal desktop: signal-desktop --no-sandbox --use-gl=swiftshader. This is because Signal developers use chrome/chromium libraries, python, electron, etc. instead native compiled languages and its own libraries. This is why the Signal desktop size is huge. It could be 10%.

Competent developers are needed.

armhzjz commented 4 years ago

In case anybody else have this problem and have spent more than one day trying to find a solution for this; the solution suggested by @mvasi90 works for me.

doncabreraphone commented 3 years ago

Something worth trying: File > Quit, then try again. I suspect the issue comes up every time we use the "X" button to close the desktop application. It might be a problem with Atom, Ultron, or whatever the heck the framework for Signal is called. I believe Signal is not the culprit here, but the framework used to port it to desktop.

francwalter commented 2 years ago

I have it after an update to Signal Desktop 5.28.0 on Mac OS 10.11.6 Not yet tried reboot. Quit doesnt work, have to kill Signal Desktop. I have no Developer Tools in View menu and dont know where to find the log on Mac. My first fear is always, that now it happened, OS 10.11 is not anymore supported, but here I downloaded Signal again from the v5.28 Download page and copied it over the old Signal Desktop and voila it worked again :)

2022-02-12 now I had an update again and again the blue screen in Signal. Downloaded the actual version 5.31.1 from the Signal's Download Page and it worked again.

SLG commented 2 years ago

I have the same issue, but it looks like I've got a different problem, here is my logging: image I'm on Windows 10. Well, actually, I do not see anything, expect a few processes in my Task Manager. When I start the Signal process again, it will show the blue window.

EvanHahn-Signal commented 2 years ago

@SLG Two questions:

  1. Are you ever able to get Signal Desktop to start?
  2. It looks like you're having GPU errors. Could you try running Signal Desktop with the --disable-gpu flag?
SLG commented 2 years ago

It used to work, but since I think 5.30, or maybe 5.29 or something it was broken. The --disable-gpu flag does seem to help! It still logs a bit about the GPU, but I do see my main window again!

EvanHahn-Signal commented 2 years ago

A future update of Signal Desktop will upgrade Electron, which we hope will fix this issue. Until then, the --disable-gpu flag should help.

maysara commented 2 years ago

now on v. 5.32, the trick is to use --in-process-gpu :/

francwalter commented 2 years ago

@SLG ...

  1. It looks like you're having GPU errors. Could you try running Signal Desktop with the --disable-gpu flag?

How can I run that flag on Mac OS 10.11?

scottnonnenberg-signal commented 2 years ago

@francwalter On macOS, you can open the Terminal app, then run this:

/Applications/Signal.app/Contents/MacOS/Signal --in-process-gpu

This might be a little different if you're running beta. You can also try --disable-gpu to see if that helps.

francwalter commented 2 years ago

Since about two updates it works again on my Mac OS 10.11.6 Something has changed too: now I have a progress bar about downloading the update, after the download the update doesnt make any blue screen anymore 👍 Thanks for fixing it 👍