Open tobiasBora opened 4 years ago
I suspect it's the libGL drivers causing this issue. I think something like https://github.com/guibou/nixGL can resolve this. That one ends up just setting LD_LIBRARY_PATH for you.
Perhaps? we can bundle swrast mesa drivers with zoom-us so that this works out of the box. It's only like 18M so doesn't hurt closure too much.
it's hard to even reproduce this issue. Would be nice to provide any details. Do we even support ubuntu 16? We support nixos for shorter period of time, I don't see why ubuntu versions would be longer supported than nixos itself.
Do we even support ubuntu 16? We support nixos for shorter period of time, I don't see why ubuntu versions would be longer supported than nixos itself.
Sort of - at least we want everything to be "pure" enough that it doesn't matter what distro you're running. All that should matter is you have a supported version of Nixpkgs (and a post 2.6 kernel is required I think). I would suspect that ubuntu 18 or 20 or whatever also has the same issue. If it's the problem I'm thinking of, it is really a case of NixOS vs. non-NixOS.
But you're right that it's probably not a good idea to fight specific quirks in other distros. Verifying it happens in another distro might be helpful.
Thanks for the answers. So as explained by matthewbauer, Nix is supposed to be as pure as possible, i.e. it should not depend on the OS running behind, otherwise it indicates some non-purity, and therefore non-reproducibility (of course, if some very specific OS have some internal bug making it very hard to work for nix, I understand, but I don't think it's the case here as the same error is hapenning on both debian unstable and ubuntu 16.04). So I tried with my debian unstable, freshly updated, and I have a similar error:
$ zoom-us
ZoomLauncher started.
cmd line:
CreateReportChannel bp_server_fd=4
$HOME = /home/me
Can't load/home/me/.config/zoomus.conf
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
Daemon not responding.
zoom started.
Client: Breakpad is using Client-Server Mode! client fd = 3
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Could not initialize GLX
Aborted
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
I suspect it's the libGL drivers causing this issue. I think something like https://github.com/guibou/nixGL can resolve this. That one ends up just setting LD_LIBRARY_PATH for you.
Perhaps? we can bundle swrast mesa drivers with zoom-us so that this works out of the box. It's only like 18M so doesn't hurt closure too much.
So if I understand, it means that people could use this inefficient swarst driver out of the box, and if they need more efficient drivers, then the option for the user is to go through this?
However, I tried this second approach (I don't want to use my nvidia graphical card for that, so I just wanted to use the embeded intel card, that's why I used nixGLIntel
), but it also fails (here it's on my debian unstable):
me@medeb:/tmp$ git clone https://github.com/guibou/nixGL
Clonage dans 'nixGL'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 126 (delta 2), reused 5 (delta 2), pack-reused 116
Réception d'objets: 100% (126/126), 26.65 Kio | 1.16 Mio/s, fait.
Résolution des deltas: 100% (42/42), fait.
me@medeb:/tmp$ cd nixGL/
me@medeb:/tmp/nixGL$ nix-build -A nixGLIntel
[...]
building '/nix/store/in28gggqkkwd1gwikkvrx076qifna3iv-nixGLIntel.drv'...
/nix/store/sw4rr0w27p09w67a3ziqsjpwq79bsays-nixGLIntel
me@medeb:/tmp/nixGL$ nix-env -i ./result
installing 'nixGLIntel'
building '/nix/store/qj517irncvvsp1rpjrjdjzrpzs492b30-user-environment.drv'...
created 73 symlinks in user environment
me@medeb:/tmp/nixGL$ ls result/bin/
nixGLIntel
me@medeb:/tmp/nixGL$ nixGLIntel zoom-us
ZoomLauncher started.
cmd line:
CreateReportChannel bp_server_fd=4
$HOME = /home/me
Can't load/home/me/.config/zoomus.conf
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
Le démon ne répond pas.
zoom started.
Client: Breakpad is using Client-Server Mode! client fd = 3
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Could not initialize GLX
Aborted
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
I also tried the following command, which works with the nix version of glxinfo (otherwise it segfault with debian's version):
$ nixGLIntel glxinfo | grep -i 'OpenGL version string'
OpenGL version string: 3.0 Mesa 19.3.3
summoning @guibou
@tobiasBora looks like your nixGL is working fine (based on the output of glxInfo
). However it may be possible that zoom
is doing some weird stuffs with the OpenGL environment. Could you open an issue with more details on nixGL issue tracker please?
Hey, it seems that zoom does reexport LD_LIBRARY_PATH
, see the log:
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
This may be the reason why nixGL is not effective.
@tobiasBora could you try to run /nix/store/b7nlczqm4za17i0y6bhidvyzcl4s6msg-zoom-us-3.5.361976.0301/share/zoom-us/zoom
(change the nix store path to the one which is the correct for you) under nixGL
please?
zoom
is a nightmare of wrapper calling warppers calling wrappers. By doing so, I'm short-circuiting one wrapper, the one which override LD_LIBRARY_PATH
.
Hum, interesting, if I run nixGLIntel /nix/store/XXX/share/zoom-us/ZoomLauncher
, then it fails, but if I run the nixGLIntel /nix/store/XXX/share/zoom-us/zoom
program (not the launcher) directly, then it succeeds. So I guess you're right, the problem comes from the first wrapper.
Should I still write an issue on the nixGL bug tracker?
@tobiasBora no need for issue on nixGL bug tracker, I think we can confirm that the issue comes from zoom
.
I wonder if it may be a good idea to fix the nix derivation so /bin/zoom-us
points to the working zoom file.
I was having the same issue as reported by @tobiasBora on Ubuntu 18.04. After properly installing nixGLIntel, and typing nixGLIntel /nix/store/7ff40rlja3drjf1pqdkdid9vkm9rg12c-zoom-us-3.5.385850.0413/share/zoom-us/zoom
, it worked.
Does this help?
export QT_XCB_GL_INTEGRATION=none
@hmenke Yeah, that allows it to start!
I was having the same error with a different application from nixpkgs. @hmenke's tip https://github.com/NixOS/nixpkgs/issues/82959#issuecomment-657306112 also worked for me.
Shouldn't export QT_XCB_GL_INTEGRATION=none
https://github.com/NixOS/nixpkgs/issues/82959#issuecomment-657306112 be added to https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh or https://github.com/NixOS/nixpkgs/blob/355df33432ac534ba2184714850c366708c84cf5/pkgs/development/libraries/qt-5/5.15/default.nix#L190 ?
I'm currently solving this by adding qtWrapperArgs = [ ''--set QT_XCB_GL_INTEGRATION none'' ];
to my derivation.
I marked this as stale due to inactivity. → More info
While setting QT_XCB_GL_INTEGRATION
to none
allows the app to launch and host/join meetings, participants don't get rendered in the meeting view and I get black rectangles instead; I can't see others or myself but other participants can see me. A few other UI elements are also blank:
I'm on Ubuntu and launching the app installed with the official .deb with QT_XCB_GL_INTEGRATION=none /usr/bin/zoom
results in the same state. Unsetting the environment variable makes it functional again.
Official .deb version: 5.8.0 (16) nixpkgs: 21.11pre320922.ee084c02040
Actually I am not running Zoom on nixOS, but on flatpak w/ Ubuntu 20.04, with similar issue. My workaround is to use QT_XCB_GL_INTEGRATION=xcb_egl
instead of QT_XCB_GL_INTEGRATION=none
and the video part is working, although some animations become weird.
I marked this as stale due to inactivity. → More info
Does this help?
export QT_XCB_GL_INTEGRATION=none
Solved my issue with Krita. I use an AMD Radeon integrated graphics.
export QT_XCB_GL_INTEGRATION=none
Doesn't fix the issue with Zoom 5.11.x or any of the recent Nvidia drivers, where as version 5.10.x worked flawlessly. Setting QT_XCB_GL_INTEGRATION
simply disables video entirely and though I can join a meeting with audio that's not exactly a valid fix.
@gslin
My workaround is to use QT_XCB_GL_INTEGRATION=xcb_egl instead of QT_XCB_GL_INTEGRATION=none
After trying that, with the following executed via CLI instead of using Gnome's app icon to start Zoom, my video (Logitech C930e) is working when testing a session via a single user video call, but this is not a long term solution that I trust when needing to be on corporate meetings where career requirements are on the line.
QT_XCB_GL_INTEGRATION=xcb_egl flatpak run us.zoom.Zoom
Running with the following versions:
Flatpak: us.zoom.Zoom = 5.11.3.3882
RHEL 8.6 x86_64
Kernel 5.18.5-1.el8.elrepo.x86_64
Nvidia related RPMs:
dnf-plugin-nvidia-2.0-1.el8.noarch
kmod-nvidia-latest-dkms-515.65.01-1.el8.x86_64
nvidia-driver-515.65.01-1.el8.x86_64
nvidia-driver-cuda-515.65.01-1.el8.x86_64
nvidia-driver-cuda-libs-515.65.01-1.el8.x86_64
nvidia-driver-devel-515.65.01-1.el8.x86_64
nvidia-driver-libs-515.65.01-1.el8.x86_64
nvidia-driver-NvFBCOpenGL-515.65.01-1.el8.x86_64
nvidia-driver-NVML-515.65.01-1.el8.x86_64
nvidia-kmod-common-515.65.01-1.el8.noarch
nvidia-libXNVCtrl-515.65.01-1.el8.x86_64
nvidia-libXNVCtrl-devel-515.65.01-1.el8.x86_64
nvidia-modprobe-515.65.01-1.el8.x86_64
nvidia-persistenced-515.65.01-1.el8.x86_64
nvidia-settings-515.65.01-1.el8.x86_64
nvidia-xconfig-515.65.01-1.el8.x86_64
Describe the bug I just installed zoom-us 3.0.287250.0828 on ubuntu 16.04. When I try to run it, it fails:
To Reproduce Steps to reproduce the behavior:
nix-channel --update
and install zoom-us withnix-env -iA nixpkgs
zoom-us
Expected behavior Should not crash
Metadata Please run
nix-shell -p nix-info --run "nix-info -m"
and paste the result.Maintainer information: