ogra1 / zoom-snap

75 stars 13 forks source link

Cannot run zoom-client: Debian Buster #55

Open KyryloRud opened 3 years ago

KyryloRud commented 3 years ago

Hi @ogra1, I think my issue is similar to the #29, but it's about stable release. I've installed a fresh one Debian Buster, then install zoom-client via snap:

Name               Version          Rev    Tracking       Publisher         Notes
...
pulseaudio         8.0-3            9      latest/stable  canonical✓        -
...
telegram-desktop   2.4.6            2185   latest/stable  telegram.desktop  -
zoom-client        5.4.53350.1027   108    latest/stable  ogra              -

Unfortunately, I cannot run zoom, due to the following errors:

$ zoom-client 
Trying to use PulseAudio instead of ALSA...

and

$ sudo snap run zoom-client 
[sudo] password for krud: 
realpath: '': No such file or directory
realpath: '': No such file or directory
...
realpath: '': No such file or directory
Trying to use PulseAudio instead of ALSA...

and

$ sudo snap run --strace zoom-client
/snap/strace-static/current/bin/strace: Unexpected wait status 0xb
error: exit status 1

I thought that, maybe installing the PulseAudio will fix this issue, so I've installed it, but nothing changed.

$ sudo snap interface pulseaudio
name:    pulseaudio
summary: allows operating as or interacting with the pulseaudio service
plugs:
  - pulseaudio:client
  - telegram-desktop
  - zoom-client
slots:
  - core
  - pulseaudio:service

Notice: I've done several reboots between installations, in case if it affects on something...

ogra1 commented 3 years ago

uh, why are you running the pulseaudio snap (this is really aimed at Ubuntu Core and rather limited in functionality) you should just use the pulseaudio deb from your distro for audio playback, the zoom-client snap does not get tested against the pulse snap ... also, please do not run the zoom-client snap with sudo, it is not designed to be run as root.

can you attach the complete output of snap version (so i can see kernel version and snapd version on your system, the pulseaudio interface is generally deprecated and replaced by the "audio-playback" and "audio-record" interfaces, the pulseaudio one should only be used on distros that are unable to run a newer snapd)

i'd also like to see the files:

~/snap/zoom-client/current/.zoom/logs/zoom-terminal.log

as well as

~/snap/zoom-client/current/.zoom/logs/zoom_stdout_stderr.log

please attach them here.

the informational Trying to use PulseAudio instead of ALSA... message is expected and shows that audio detection worked fine, this is not an error.

Crease29 commented 3 years ago

Hi, I have the same issue on Fedora 33 with Cinnamon.

$ cat ~/snap/zoom-client/current/.zoom/logs/zoom_stdout_stderr.log    
ZoomLauncher started.
Zoom path is: /snap/zoom-client/108/zoom
cmd line: 
CreateReportChannel bp_server_fd=4
$HOME = /home/kneuwerth/snap/zoom-client/108 
Can't load/home/kneuwerth/snap/zoom-client/108/.config/zoomus.conf
export SSB_HOME=/home/kneuwerth/snap/zoom-client/108/.zoom; export QSG_INFO=1; export QXXXXXXXXCREEN_SCALE_FACTOR=1; export LXXXXXXXXY_PATH=/snap/zoom-client/108/zoom; export BREAKPAD_CLIENT_FD=3; /snap/zoom-client/108/zoom/zoom "" 
No PulseAudio daemon running, or not running as session daemon.
zoom started.
[CZPClientLogMgr::LogClientEnvironment] [MacAddr: 60:45:CB:6D:92:14][client: Linux][OS: Ubuntu Core 18][Hardware: CPU Core:4 Frenquency:4 G Memory size:32047MB CPU Brand:Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz GPU Brand:][Req ID: ]
Linux Client Version is 5.4.1 (53350.1027)
QSG_RENDER_LOOP is 
XDG_CURRENT_DESKTOP = X-Cinnamon;   GDMSESSION = cinnamon
Graphics Card Info:: 
Zoom package arch is 64bit, runing OS arch is x86_64
QGLXContext: Failed to create dummy context
qt.scenegraph.general: QSG: basic render loop
qt.scenegraph.general: Using sg animation driver
Fontconfig warning: "/etc/fonts/fonts.conf", line 5: unknown element "its:rules"
Fontconfig warning: "/etc/fonts/fonts.conf", line 6: unknown element "its:translateRule"
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'translate'
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'selector'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'xmlns:its'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'version'
Fontconfig warning: "/etc/fonts/fonts.conf", line 9: unknown element "description"
qt.svg: :/images/wechat.svg:10:6: Could not resolve property: #pattern0
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 
Aborted (core dumped)
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
$ cat ~/snap/zoom-client/current/.zoom/logs/zoom-terminal.log 
Cursor:

Edit: I was able to fix the fontconfig warnings. This didn't fix it. I believe that the main issue is this:

Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 

Edit 2: After a reboot it worked. In that previous session, I updated my nvidia drivers. That was probably the issue for me.

ogra1 commented 3 years ago

awesome that you solved this yourself ...

KyryloRud commented 3 years ago

Hi @ogra1,

Thank you for your advice. I've removed the pulseaudio from snap, also I've checked the pulseaudio in apt - it is installed, version: pulseaudio 12.2. Also, I've reinstalled zoom-client (just in case, and reboot the os):

$ sudo snap install zoom-client
zoom-client 5.4.53350.1027 from Oliver Grawert (ogra) installed

Snap version:

$ snap version
snap    2.47.1
snapd   2.47.1
series  16
debian  10
kernel  4.19.0-12-amd64

As far as I've reinstalled zoom-client, I run it as regular user (it shows a window for couple milliseconds then disappear):

$ snap run zoom-client
Trying to use PulseAudio instead of ALSA...

Now, I have log files, here they are:

$ cat ~/snap/zoom-client/current/.zoom/logs/zoom-terminal.log
Cursor: DMZ-Black
$ cat ~/snap/zoom-client/current/.zoom/logs/zoom_stdout_stderr.log
ZoomLauncher started.
Zoom path is: /snap/zoom-client/108/zoom
cmd line: 
CreateReportChannel bp_server_fd=4
$HOME = /home/user/snap/zoom-client/108 
Can't load/home/user/snap/zoom-client/108/.config/zoomus.conf
export SSB_HOME=/home/user/snap/zoom-client/108/.zoom; export QSG_INFO=1; export QXXXXXXXXCREEN_SCALE_FACTOR=1; export LXXXXXXXXY_PATH=/snap/zoom-client/108/zoom; export BREAKPAD_CLIENT_FD=3; /snap/zoom-client/108/zoom/zoom "" 
No PulseAudio daemon running, or not running as session daemon.
zoom started.
[CZPClientLogMgr::LogClientEnvironment] [MacAddr: 4D:22:EC:74:E7:D6][client: Linux][OS: Ubuntu Core 18][Hardware: CPU Core:4 Frenquency:3.8 G Memory size:12014MB CPU Brand:Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz GPU Brand:][Req ID: ]
Linux Client Version is 5.4.1 (53350.1027)
QSG_RENDER_LOOP is 
XDG_CURRENT_DESKTOP = GNOME;   GDMSESSION = gnome
Graphics Card Info:: 
Zoom package arch is 64bit, runing OS arch is x86_64
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
QGLXContext: Failed to create dummy context
qt.scenegraph.general: QSG: basic render loop
qt.scenegraph.general: Using sg animation driver
Fontconfig warning: "/etc/fonts/fonts.conf", line 5: unknown element "its:rules"
Fontconfig warning: "/etc/fonts/fonts.conf", line 6: unknown element "its:translateRule"
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'translate'
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'selector'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'xmlns:its'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'version'
Fontconfig warning: "/etc/fonts/fonts.conf", line 9: unknown element "description"
qt.svg: :/images/wechat.svg:10:6: Could not resolve property: #pattern0
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::NoProfile) 
Aborted
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
ogra1 commented 3 years ago

Graphics Card Info:: Zoom package arch is 64bit, runing OS arch is x86_64 libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast

what kind of graphics card do you have, seemingly the snap environment does not find it at all

KyryloRud commented 3 years ago

Hi @ogra1, here is my GPU:

$ lspci
...
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 950] (rev a1)
...
ogra1 commented 3 years ago

and do you use the nvidia driver from the debian archive ?

KyryloRud commented 3 years ago

@ogra1 I've installed it not from the archive, but from the stable branch.

$ sudo apt list --installed | grep nvidia-driver
nvidia-driver-bin/stable,now 418.152.00-1 amd64 [installed,automatic]
nvidia-driver-libs/stable,now 418.152.00-1 amd64 [installed,automatic]
nvidia-driver/stable,now 418.152.00-1 amd64 [installed]
xlotlu commented 3 years ago

it shows a window for a couple milliseconds then it disappears

Same problem, also debian, this happens since I switched to an nvidia gpu from intel. The tray icon has enough time to appear as well.

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
QGLXContext: Failed to create dummy context

I'm running debian testing, nvidia 450.80.02. I purged and cleaned and reinstalled everything nvidia-related and zoom-related. No luck. I'd like to strace and find out what lib it's trying to load, but I don't know how under snap.

The official .deb works, albeit after waiting a loooong time for the initial window to actually render its contents. When it finally does it dumps something that looks like glxinfo to the terminal.

ogra1 commented 3 years ago

to run strace with any snap you can do:

snap run --strace zoom-client

snapd expects all nvidia drivers in their dir in /usr/lib/nvidia-$version and maps this to /var/lib/snapd/lib/gl ill nside the snap at runtime where the opengl interface expects to find them on app startup, it might be that something changed in the nvidia packaging in debian recently so these paths are not used anymore....

to access a snap runtime environment you can run:

snap run --shell zoom-client

this spawns a shell inside the snap environment so you could inspect paths like /var/lib/snapd/lib/gl and friends

xlotlu commented 3 years ago

to run strace with any snap you can do:

snap run --strace zoom-client

I can't find anything strange. I think.

snapd expects all nvidia drivers in their dir in /usr/lib/nvidia-$version

There's nothing there, debian uses the alternatives mechanism, a bunch of symlinks:

$ tree /usr/lib/nvidia
/usr/lib/nvidia
├── alternate-install-present
├── bumblebee
├── check-for-conflicting-opengl-libraries
├── check-for-mismatching-nvidia-module
├── current
│   ├── libglxserver_nvidia.so -> libglxserver_nvidia.so.450.80.02
│   ├── libglxserver_nvidia.so.450.80.02
│   ├── nvidia-bug-report.sh
│   ├── nvidia-debugdump
│   ├── nvidia_drv.so
│   └── nvidia.ids
├── libglxserver_nvidia.so -> /etc/alternatives/nvidia--libglxserver_nvidia.so
├── nvidia -> /etc/alternatives/nvidia
├── nvidia-bug-report.sh -> /etc/alternatives/nvidia--nvidia-bug-report.sh
├── nvidia_drv.so -> /etc/alternatives/nvidia--nvidia_drv.so
└── pre-install

Relevant alternatives:

/etc/alternatives/glx--libglxserver_nvidia.so -> /usr/lib/nvidia/libglxserver_nvidia.so
/etc/alternatives/glx--nvidia-blacklists-nouveau.conf -> /etc/nvidia/nvidia-blacklists-nouveau.conf
/etc/alternatives/glx--nvidia-bug-report.sh -> /usr/lib/nvidia/nvidia-bug-report.sh
/etc/alternatives/glx--nvidia-drm-outputclass.conf -> /etc/nvidia/nvidia-drm-outputclass.conf
/etc/alternatives/glx--nvidia_drv.so -> /usr/lib/nvidia/nvidia_drv.so
/etc/alternatives/glx--nvidia-load.conf -> /etc/nvidia/nvidia-load.conf
/etc/alternatives/glx--nvidia-modprobe.conf -> /etc/nvidia/nvidia-modprobe.conf
/etc/alternatives/nvidia--libglxserver_nvidia.so -> /usr/lib/nvidia/current/libglxserver_nvidia.so

to access a snap runtime environment you can run:

snap run --shell zoom-client

this spawns a shell inside the snap environment so you could inspect paths like /var/lib/snapd/lib/gl and friends

$ ls -l /var/lib/snapd/lib/gl  # (of sorts)

libcudart.so.9.1 -> libcudart.so.9.1.85
libcudart.so.9.1.85 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libcudart.so.9.1.85
libEGL_nvidia.so.0 -> /var/lib/snapd/hostfs/etc/alternatives/nvidia--libEGL_nvidia.so.0-x86_64-linux-gnu
libEGL.so.1 -> /var/lib/snapd/hostfs/etc/alternatives/glx--libEGL.so.1-x86_64-linux-gnu
libGLdispatch.so.0 -> libGLdispatch.so.0.0.0
libGLdispatch.so.0.0.0 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0.0.0
libGLESv2.so.2 -> /var/lib/snapd/hostfs/etc/alternatives/glx--libGLESv2.so.2-x86_64-linux-gnu
libGL.so.1 -> /var/lib/snapd/hostfs/etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
libGLU.so.1 -> libGLU.so.1.3.1
libGLU.so.1.3.1 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
libGLX_indirect.so.0 -> /var/lib/snapd/hostfs/etc/alternatives/glx--libGLX_indirect.so.0-x86_64-linux-gnu
libGLX_nvidia.so.0 -> /var/lib/snapd/hostfs/etc/alternatives/nvidia--libGLX_nvidia.so.0-x86_64-linux-gnu
libGLX.so.0 -> libGLX.so.0.0.0
libGLX.so.0.0.0 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0
libnvidia-eglcore.so.450.80.02 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libnvidia-eglcore.so.450.80.02
libnvidia-glcore.so.450.80.02 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.450.80.02
libnvidia-glsi.so.450.80.02 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.450.80.02
libnvidia-ml.so.1 -> /var/lib/snapd/hostfs/etc/alternatives/nvidia--libnvidia-ml.so.1-x86_64-linux-gnu
libnvidia-tls.so.450.80.02 -> /var/lib/snapd/hostfs/usr/lib/x86_64-linux-gnu/libnvidia-tls.so.450.80.02
vdpau
ogra1 commented 3 years ago
libGL.so.1 -> /var/lib/snapd/hostfs/etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
...
libGLESv2.so.2 -> /var/lib/snapd/hostfs/etc/alternatives/glx--libGLESv2.so.2-x86_64-linux-gnu

where do these two alternatives link to on the host, does not look like they come from the nvidia driver but mesa instead ?

KyryloRud commented 3 years ago

Hi @ogra1, I have the same file system layout as @xlotlu. Yes, the libGL.so.1 and libGLESv2.so.2 are come from the mesa:

$ ls -l /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
/etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu -> /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
$ ls -l /etc/alternatives/glx--libGLESv2.so.2-x86_64-linux-gnu
/etc/alternatives/glx--libGLESv2.so.2-x86_64-linux-gnu -> /usr/lib/mesa-diverted/x86_64-linux-gnu/libGLESv2.so.2

Is it not OK?

ogra1 commented 3 years ago

well, i dont think mixing the libs will work ... there are quite a few recommends on:

https://packages.debian.org/de/buster-backports/nvidia-driver-libs

i'd check if they are all installed ... (though it seems libopengl0-glvnd-nvidia which seems to have shipped libGL.so in the past does not exist anymore, but perhaps libopengl0 knows how to handle that nowadays, but i'd still not expect it to be diverted to mesa)

KyryloRud commented 3 years ago

Hi @ogra1, this package is already installed in my OS. If I understand you correctly, currently my system has a mix of Nvidia & Mesa libraries, consequently it leads to unstable work of the snap (consequently unstable work of zoom-client). Am I right?

xlotlu commented 3 years ago

(though it seems libopengl0-glvnd-nvidia which seems to have shipped libGL.so in the past does not exist anymore, but perhaps libopengl0 knows how to handle that nowadays, but i'd still not expect it to be diverted to mesa)

libopengl0 is vendor-neutral nowadays, along with more stuff. I don't think that means "diverted to mesa", but "mesa was diverted", to make room for vendor libraries, which is a mess because, well, there are no vendor libraries anymore, stuff being vendor-neutral and all. But I don't think that matters at all, because the symlink ultimately points to the right thing:

$ dpkg -S /usr/lib/x86_64-linux-gnu/libGL.so.1 
diversion by glx-diversions from: /usr/lib/x86_64-linux-gnu/libGL.so.1
diversion by glx-diversions to: /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
libgl1:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1

$ apt-cache show libgl1:amd64
Package: libgl1
Source: libglvnd
Description-en: Vendor neutral GL dispatch library -- legacy GL support

The "good" news is that this isn't related to this snap. I get this for others as well (except they don't crash right away):

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

This should be reported downstream, not sure against what package though.

ogra1 commented 3 years ago

right, there seems to be something that changed in the nvidia setup of debian with newer drivers that snapd needs to learn about (it seems to work fine on ubuntu, but the approaches of handling nvidia drivers are massively different between the two)

hackel commented 3 years ago

I landed here after experiencing what I believe was the same issue as @Crease29. My nvidia drivers were updated, but inside the snap, the files in /var/lib/snapd/lib/gl were still symlinks to the (now removed) old versions. This is clearly a snapd problem and not related to Zoom. (Got the same error messages trying to run the Supertuxcart snap.) I just hope others will be able to locate this issue so they don't waste an hour debugging it like I did when a simple reboot was all it took to fix it!