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

Debian 9/Ubuntu 18.10: Window never appears on startup after upgrade to 1.19.0 #2971

Open
1 task done
rmrfslashbin opened this issue Dec 12, 2018 · 14 comments
Open
1 task done

Comments

@rmrfslashbin
Copy link

rmrfslashbin commented Dec 12, 2018

  • I have searched open and closed issues for duplicates

Bug description

After upgade to 1.19.0, UI fails to draw and app seems to hang.

Steps to reproduce

  1. Start signal-desktop for Linux
  2. Initial stdout/strerr logs are shown.
  3. App hangs with no UI

Actual result:

~]$ signal-desktop
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
userData: /home/rsigler/.dot-files/.config/Signal
config/get: Successfully read user config file
config/get: Did not find ephemeral config file, cache is now empty object
making app single instance
(electron) 'app.makeSingleInstance(cb)' is deprecated. Use 'app.requestSingleInstanceLock() and app.on('second-instance', cb)' instead.
{"name":"log","hostname":"penguin","pid":1714,"level":30,"msg":"app ready","time":"2018-12-12T13:41:16.180Z","v":0}
{"name":"log","hostname":"penguin","pid":1714,"level":30,"msg":"updateSchema: Current schema version: 7; Most recent schema version: 7; SQLite version: 3.20.1; SQLCipher version: 3.4.2;","time":"2018-12-12T13:41:16.199Z","v":0}
{"name":"log","hostname":"penguin","pid":1714,"level":30,"msg":"Ensure attachments directory exists","time":"2018-12-12T13:41:16.203Z","v":0}
{"name":"log","hostname":"penguin","pid":1714,"level":30,"msg":"Location reset needed","time":"2018-12-12T13:41:16.206Z","v":0}
{"name":"log","hostname":"penguin","pid":1714,"level":30,"msg":"Initializing BrowserWindow config: {"show":true,"width":800,"height":610,"minWidth":640,"minHeight":360,"autoHideMenuBar":false,"webPreferences":{"nodeIntegration":false,"nodeIntegrationInWorker":false,"preload":"/opt/Signal/resources/app.asar/preload.js","nativeWindowOpen":true},"icon":"/opt/Signal/resources/app.asar/images/icon_256.png"}","time":"2018-12-12T13:41:16.206Z","v":0}

** App hangs, no UI **

Expected result:
Normal start up, UI is drawn.

Screenshots

(See logs above)

Platform info

Signal version:
~]$ sudo dpkg -l |grep signal-desktop
ii signal-desktop 1.19.0 amd64

Operating System:
~]$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Link to debug log

(See above)

@nifgraup
Copy link

git bisect says

"There are only 'skip'ped commits left to test.
The first bad commit could be any of:
d600c38
6039c29
d75d823
5854447
We cannot bisect more!"

@ivan
Copy link

ivan commented Dec 13, 2018

I have the same problem on Debian 9.6. The window opens but does not draw anything. My graphics are radeon (laptop has a Radeon HD 6400M/7400M Series).

(signal-desktop:25534): Gtk-WARNING **: Theme parsing error: gtk.css:3:28: The style property GtkRange:slider-width is deprecated and shouldn't be used anymore. It will be removed in a future version
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
userData: /home/at/.config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
making app single instance
(electron) 'app.makeSingleInstance(cb)' is deprecated. Use 'app.requestSingleInstanceLock() and app.on('second-instance', cb)' instead.
{"name":"log","hostname":"plato","pid":25534,"level":30,"msg":"app ready","time":"2018-12-13T23:07:27.794Z","v":0}
{"name":"log","hostname":"plato","pid":25534,"level":30,"msg":"updateSchema: Current schema version: 7; Most recent schema version: 7; SQLite version: 3.20.1; SQLCipher version: 3.4.2;","time":"2018-12-13T23:07:27.813Z","v":0}
{"name":"log","hostname":"plato","pid":25534,"level":30,"msg":"Ensure attachments directory exists","time":"2018-12-13T23:07:27.816Z","v":0}
{"name":"log","hostname":"plato","pid":25534,"level":30,"msg":"Initializing BrowserWindow config: {\"show\":true,\"width\":989,\"height\":837,\"minWidth\":640,\"minHeight\":360,\"autoHideMenuBar\":false,\"webPreferences\":{\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"preload\":\"/opt/Signal/resources/app.asar/preload.js\",\"nativeWindowOpen\":true},\"icon\":\"/opt/Signal/resources/app.asar/images/icon_256.png\",\"maximized\":false,\"x\":608,\"y\":60}","time":"2018-12-13T23:07:27.821Z","v":0}

@ivan
Copy link

ivan commented Dec 13, 2018

Signal-Desktop starts fine here with /opt/Signal/signal-desktop --disable-gpu.

FWIW, my google-chrome-stable 71.0.3578.98-1 works with GPU support.

@ivan
Copy link

ivan commented Dec 14, 2018

Possibly electron/electron#13415

@aknrdureegaesr
Copy link

aknrdureegaesr commented Dec 14, 2018

It does seem to be the issue @ivan pointed out (thank you!). I'm on Debian stretch here, with stretch-backports available. After

sudo apt-get -t stretch-backports install libgl1-mesa-dri

(which is one of the workarounds of the electron bug), the problem was gone.

@aknrdureegaesr
Copy link

I speculate commit 6039c29 might be the problem, as it pulls in the new electron version.

aknrdureegaesr added a commit to aknrdureegaesr/Signal-Desktop that referenced this issue Dec 14, 2018
@aknrdureegaesr
Copy link

aknrdureegaesr commented Dec 14, 2018

FWIW: I have tried to prepare the straightforward pull request at https://github.com/aknrdureegaesr/Signal-Desktop/tree/fix-desktop-ui , but the tests don't come through on my machine.

Fatal error: Something went wrong: Expected to find window.mochaResults set! Error: Expected to find window.mochaResults set!
  at new WaitUntilTimeoutError (/home/andreas/comp/Signal-Desktop/node_modules/webdriverio/build/lib/utils/ErrorHandler.js:149:12)                                                                                    
  at /home/andreas/comp/Signal-Desktop/node_modules/webdriverio/build/lib/commands/waitUntil.js:29:19  

I'm getting the same problem with current development aka e10fb47.

Anybody who has been able to set up a dev env for Signal Desktop that works is welcome to use that change and contribute a pertinent pull request. I waive all rights to that trivial change, they are yours if you want them.

The pull request does fix the problem, though. After going back to the normal Debian stable libgl1-mesa-dri:

  • Running yarn start on a build based on development aka e10fb47 : Broken UI

  • Running yarn start on a build based on my branch aka 493f911 : UI works.

@scottnonnenberg-signal scottnonnenberg-signal changed the title UI for Linux Signal-Desktop fails to start after upgrade to 1.19.0 Debian 9/Ubuntu 18.10: Window never appears on startup after upgrade to 1.19.0 Dec 14, 2018
@scottnonnenberg-signal
Copy link
Contributor

@aknrdureegaesr I appreciate the effort you've spent, but it's highly unlikely that we'll go back to an older version of Electron. I'd recommend that you put pressure on the Electron project to get them to fix Electron itself. The more information you can gather about the specific hardware/drivers/distros affected, the more likely it will be that Electron will be able to make the change.

In the meantime, I'm happy to see that the --disable-gpu makes things work.

Finally, it would have been great to get this feedback from all of you when v1.19 was in beta. Please consider installing the beta version so we can know sooner what an Electron upgrade will mean for our users! https://github.com/signalapp/Signal-Desktop#install-the-beta

@rmrfslashbin
Copy link
Author

@scottnonnenberg - thanks for the param. --disable-gpu has the app running again.

@knarrff
Copy link

knarrff commented Jan 16, 2019

The description is a bit misleading now: the window does appear, but that is about it. The window does not have any content, not even what was behind it gets redrawn.

And to add information: I see this on integrated Intel graphics on a laptop (HD Graphics 520).
signal-desktop 1.19.0 amd64
same OS as OP.

I understand the reasoning by the signal developers not to go back to an older version of a dependency. However, if it turns out that the newer version causes more trouble than anticipated, it might be worth reconsidering - or at least putting some pressure on electron by the "signal project" itself. That would likely have more weight than each individual user that is affected.

@scottnonnenberg-signal
Copy link
Contributor

Please try the v1.20 beta, release yesterday. It has an Electron upgrade which may help.

@nifgraup
Copy link

confirming that --disable-gpu is not needed in 1.20.0-beta.3

@knarrff
Copy link

knarrff commented Jan 18, 2019

Please try the v1.20 beta, release yesterday. It has an Electron upgrade which may help.

Thanks, this now makes it work for me. And it's nice to see that this apparently was a "real fix" and not just disabling gpu acceleration on platforms that triggered the bug. :)

@rmrfslashbin
Copy link
Author

Works great. Thank you!

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

No branches or pull requests

6 participants