Bug 27793

Summary: Global setting of QT_PLUGIN_PATH= causes Zoom 5.4 to fail
Product: Mageia Reporter: w unruh <unruh>
Component: RPM PackagesAssignee: All Packagers <pkg-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: lewyssmith, mageia, mageia, ouaurelien
Version: 8   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: qt4-4.8.7-33.mga8.src.rpm CVE:
Status comment:
Attachments: strace on zoom

Description w unruh 2020-12-09 23:53:43 CET
Description of problem:A new Zoom (the conferencing program) version 5.4.x.x has been released and it segfaults on startup. I have done an strace on it, and about the last thing that I can understand happens before the segfault is that it complains about not being able to connect with the pulse audio daemon. 

This is a new behaviour. While I know that Zoom is NOT a mageia supported program, it is so widely used and critical for many people's livelihood Mageia should at least not be getting in the way of its being used. 
The only thing I can see is that pulseaudio is started with the "no-daemon" flag because of some bug in systemd. I have tried to remove that flag in /lib/systemd/users/pulseaudio.service, but that makes no difference-- it still starts with the --no-daemon flag.

I an attaching a section of the strace on zoom, which others can read much more easily than I can. If there is any other suggestion as to what could cause the segfault, it would be great to hear about. 

I also have the corefile generated if that helps anyone.


Version-Release number of selected component (if applicable):


How reproducible: Always


Steps to Reproduce:
1.Run zoom

Again I am listing this as a major feature is broken-- In this case a crucial program that millions rely on in Covid times does not work. That this is a proprietary program is of course a problem with anyone at Mageia being able to fix it, and I am trying to see if I can get traction on it upstream as well. But since there has not been a mass upswelling ot screams about zoom and linux suggests that it is a Mageia problem, not a generic zoom-on-linux problem. (Of course I could just be the first canary in the mine uttering its death scream).
:
Comment 1 w unruh 2020-12-09 23:58:57 CET
Created attachment 12065 [details]
strace on zoom

The strace output of running zoom (or rather /opt/zoom/zoom.sh, the debugging script for zoom with an strace added after the library environment has been set)
I also have the coredump if anyone is interested, or could find it useful. Let me know and I will download it as well.
Comment 2 Martin Whitaker 2020-12-10 01:04:31 CET
Try the workaround described at https://wiki.mageia.org/en/Using_Zoom_communication_application#Update:_2020_11_14

CC: (none) => mageia

Comment 3 Lewis Smith 2020-12-10 20:25:56 CET
Nice discovery, Martin; and usual thanks for same.
Does it not also imply 'use an earlier version'?

"Update: 2020_11_14
More recent versions of the zoom download RPM will crash silently. 
For example: zoom-5.4.53391.1108-1_x86_64.rpm will crash but the older zoom-5.3.472687.1012-1_x86_64.rpm will run OK."

But we must await the complainent's feedback, because what he preposes re pulseaudio might yet be a factor.

CC: (none) => lewyssmith

Comment 4 w unruh 2020-12-10 21:51:03 CET
It seems the PulseAudio thing was just a coincidence. Putting in 
unset QT_PLUGIN_PATH="" got rid of the crash, and the program opened. It did not get rid of the tearing/flickering on Sharing on guests, but that is another bug.

Putting in the unset seems easy enough so that you can enjoy the bug fixes that Zoom put into the new version. And since the Qt devolopers explicitly state that  QT_PLUGIN_PATH should NOT be set globally, Mageia's doing so and breaking Zoom is on Mageia's head.
Comment 5 w unruh 2020-12-10 21:55:51 CET
The other problem is that it seems to be inpossible to regress Zoom. They ONLY put up the latest version, and AFAIK you cannot get older versions.
Comment 6 Martin Whitaker 2020-12-11 00:50:58 CET
Always save a copy of the RPM when installing it. Then you can revert to a previously saved copy.
Comment 7 w unruh 2020-12-11 01:36:42 CET
Sure. And I happened to do that, but I suspect it is not common. And just one user having his Zoom destroyed because of Mageia's mistake is too many (Bug 25038). It has now been over a year that it has been pointed out that the Qt Developeres specifically warn that distributions should NOT set QT_PLUGIN_PATH globally, and Mageia  still does it. Since we have all come to rely on zoom to work and stay sane, it is really time that the bug was fixed. The chances of
someone who has lost all access to zoom finding the kludge to fix it (either in this bug list or in the mageia wiki) are not terribly high.
Comment 8 Lewis Smith 2020-12-11 18:14:09 CET
Do you happen to know whether this applies to Mageia 8 also? I have no wish to install Zoom to find out...

> Putting in unset QT_PLUGIN_PATH="" got rid of the crash
> It has now been over a year that it has been pointed out that the Qt
> Developeres specifically warn that distributions should NOT set
> QT_PLUGIN_PATH globally, and Mageia  still does it
Despite the explicit advice given in the Wiki cited in comment 2, this is not the first time we have had a bug due to this. It looks a valid point.
The maintenance of Qt4|5 is unclear, so assigning this bug globally if only for an opinion. CC'ing NicolasL as the official man.

CC: (none) => mageia
Assignee: bugsquad => pkg-bugs
Summary: Zoom 5.4 segfaults it seems on Pulse Audio not being a daemon. => Global setting of QT_PLUGIN_PATH= causes Zoom 5.4 to fail

Comment 9 w unruh 2020-12-11 19:33:26 CET
I have not tried Mga8 to see if it suffers from the same problem, but if you just look to see if QT_PLUGIN_PATH is defined (env|grep QT  will show it) that should be sufficient to see if the bug is still there. And that does not require installing Zoom.
Comment 10 w unruh 2020-12-11 19:51:04 CET
Note that one does not need to unset QT_PLUGIN_PATH, one can just set it to nothing
export QT_PLUGIN_PATH='' 
will also work. I have a bug report in to Zoom about this and they are looking at it. Whether that will result in action, I do not know. If a bad QT_PLUGIN_PATH can crash zoom, they really should reset it themselves. But if Mageia is the only distro with this problem, then the pressure on them is dissipated.

It seems to be set in /etc/profile.d/60qt5.sh

It may be that something in the drak tools is set up to assume that it is defined, expecially the /usr/lib64/qt5/plugins/kcms part.

Looking through the lib and bin directories there are a few things with use it
but nothing in the drak libs.
>sudo grep -r QT_PLUGIN_PATH /lib*
Binary file /lib64/libKF5CoreAddons.so.5.57.0 matches
Binary file /lib64/libdigikamcore.so.6.1.0 matches
Binary file /lib64/libdigikamcore.so.5.9.0 matches
/lib64/qt5/mkspecs/features/qt_functions.prf:        pluginpath.name = QT_PLUGIN_PATH
Binary file /lib64/libKF5kipiplugins.so.5.9.1 matches
Binary file /lib64/libQt5Core.so.5.12.6 matches
Binary file /lib64/libQtCore.so.4.8.7 matches

>sudo grep -r QT_PLUGIN_PATH /usr/libexec/
Binary file /usr/libexec/kf5/kioslave matches
Comment 11 Lewis Smith 2020-12-12 11:05:35 CET
Re Mageia 8, yes, it is still set:
QT_PLUGIN_PATH=/usr/lib64/qt5/plugins:/usr/lib64/qt5/plugins/kcms:
------------
As for Zoom, I think you could reasonably ask them, not a bug, rather than only offer their latest version, but also to retain & offer earlier versions for download; explicitly to cover cases like this where the latest version introduces a problem.

Source RPM: Zoom? pulse audio? => qt4-4.8.7-33.mga8.src.rpm,qt4-4.8.7-26.2.mga7.src.rpm

Comment 12 Aurelien Oudelet 2021-07-06 13:15:33 CEST
Mageia 7 is EOL since July 1st 2021.
There will not have any further bugfix for this release.

You are encouraged to upgrade to Mageia 8 as soon as possible.

@reporter, if this bug still apply with Mageia 8, please let us know it.

@packager, if you work on the Mageia 7 version of your package, please check the Mageia 8 package if issue is also present. In this case, please fix the Mageia 8 version instead.

This bug report will be closed OLD if there is no further notice within 1st September 2021.
Comment 13 Aurelien Oudelet 2021-07-08 22:17:41 CEST
(In reply to Lewis Smith from comment #11)
> Re Mageia 8, yes, it is still set:
> QT_PLUGIN_PATH=/usr/lib64/qt5/plugins:/usr/lib64/qt5/plugins/kcms:
> ------------
> As for Zoom, I think you could reasonably ask them, not a bug, rather than
> only offer their latest version, but also to retain & offer earlier versions
> for download; explicitly to cover cases like this where the latest version
> introduces a problem.

Hum. Newly installed Mageia 8 from Classic ISO.

$ env | grep qt
QTDIR5=/usr/lib64/qt5
QT5DOCDIR=/usr/share/doc/qt5
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/sbin:/usr/sbin:/usr/lib64/qt5/bin:/home/aurelien/.local/bin:/home/aurelien/bin

$ env | grep QT
QTDIR5=/usr/lib64/qt5
QT5DOCDIR=/usr/share/doc/qt5
QT_AUTO_SCREEN_SCALE_FACTOR=0

I don't see QT_PLUGIN_PATH=/usr/lib64/qt5/plugins:/usr/lib64/qt5/plugins/kcms:

Moreover, installing latest version of Zoom from:
zoom-5.7.26030.0627-1.x86_64

It requires:
ld-linux-x86-64.so.2()(64bit)
libc.so.6()(64bit)
libX11.so.6()(64bit)
libXfixes.so.3()(64bit)
libglib-2.0.so.0()(64bit)
libGL.so.1()(64bit)
libsqlite3.so.0()(64bit)
libXrender.so.1()(64bit)
libXcomposite.so.1()(64bit)
libQt3Support.so.4()(64bit)
libxslt.so.1()(64bit)
libgstvideo-0.10.so.0()(64bit)
libasound.so.2()(64bit)
libpulse.so.0()(64bit)
libgthread-2.0.so.0()(64bit)
libxcb-shape.so.0()(64bit)
libxcb-shm.so.0()(64bit)
libxcb-randr.so.0()(64bit)
libxcb-image.so.0()(64bit)
libxcb-xtest.so.0()(64bit)
libxcb-keysyms.so.1()(64bit)
mesa-dri-drivers

With dnf, it pulls:
 GConf2                x86_64 3.2.6-19.mga8            mageia-x86_64  917 k
 dconf                 x86_64 0.38.0-1.mga8            mageia-x86_64   91 k
 gnu-free-fonts-common noarch 20120503-10.mga8         mageia-x86_64  120 k
 gnu-free-fonts-compat noarch 20120503-10.mga8         mageia-x86_64  6.5 k
 gnu-free-mono-fonts   noarch 20120503-10.mga8         mageia-x86_64  438 k
 gnu-free-sans-fonts   noarch 20120503-10.mga8         mageia-x86_64  755 k
 gnu-free-serif-fonts  noarch 20120503-10.mga8         mageia-x86_64  1.4 M
 ibus                  x86_64 1.5.23-2.mga8            mageia-x86_64  1.0 M
 ibus-gtk              x86_64 1.5.23-2.mga8            mageia-x86_64   21 k
 ibus-gtk3             x86_64 1.5.23-2.mga8            mageia-x86_64   22 k
 ibus-m17n             x86_64 1.4.2-1.mga8             mageia-x86_64   44 k
 ibus-ui-gtk3          x86_64 1.5.23-2.mga8            mageia-x86_64  116 k
 lib64GConf2_4         x86_64 3.2.6-19.mga8            mageia-x86_64   92 k
 lib64anthy0           x86_64 9100h-25.20110409.16.mga8
                                                       mageia-x86_64  179 k
 lib64ibus-gir1.0      x86_64 1.5.23-2.mga8            mageia-x86_64   88 k
 lib64xcb-xtest0       x86_64 1.14-1.mga8              mageia-x86_64   11 k
 librsvg               x86_64 2.50.3-1.1.mga8          updates-x86_64  55 k
 m17n-db               noarch 1.8.0-4.mga8             mageia-x86_64  1.5 M
 m17n-lib              x86_64 1.8.0-3.mga8             mageia-x86_64   98 k
 python3-pyxdg         noarch 0.26-6.mga8              mageia-x86_64   95 k

Nothing more, nothing less.
Zoom launches itself well and I am able to make a conference.

I repeat I don't have QT_PLUGIN_PATH env set on all 3 Mageia 8 machines, all installed with Mageia 8 ISO. I haven't tested the upgrade from Mageia 7.
But, qt4 RPM is not installed.

$ rpm -qa | grep qt4

Nothing.

$ rpm -qa | grep qt
lib64qt5texttospeech5-5.15.2-1.mga8
lib64qt5quickparticles5-5.15.2-1.mga8
qtcharts5-5.15.2-1.mga8
lib64qt5webkit5-5.212.0-1.alpha4.6.mga8
lib64qt5waylandclient5-5.15.2-2.mga8
python3-qt5-core-5.15.2-2.mga8
lib64qtav1-1.13.0-4.mga8
lib64kf5networkmanagerqt6-5.76.0-1.mga8
lib64qt5quick5-5.15.2-1.mga8
lib64qt5eglfsdeviceintegration5-5.15.2-4.2.mga8
lib64qtsinglecoreapplication-qt5_1-2.6.1-22.mga8
lib64qt5-database-plugin-ibase-5.15.2-4.2.mga8
lib64qt5webengine5-5.15.2-2.mga8
lib64qt5opengl5-5.15.2-4.2.mga8
python3-qt5-qml-5.15.2-2.mga8
lib64qt5printsupport5-5.15.2-4.2.mga8
lib64qt5xmlpatterns5-5.15.2-1.mga8
lib64qaccessibilityclient-qt5_0-0.4.1-3.mga8
qtspeech5-5.15.2-1.mga8
lib64qt5charts5-5.15.2-1.mga8
lib64qt5gui5-5.15.2-4.2.mga8
networkmanager-qt-5.76.0-1.mga8
lib64dbusmenu-qt5_2-0.9.3-1.20160218.4.mga8
pavucontrol-qt-0.16.0-2.mga8
lib64qca-qt5_2-2.3.1-5.mga8
lib64qt5-database-plugin-mysql-5.15.2-4.2.mga8
lib64qt5webchannel5-5.15.2-1.mga8
lib64qtavwidgets1-1.13.0-4.mga8
qtwayland5-5.15.2-2.mga8
qtquickcontrols25-5.15.2-1.mga8
qttranslations5-5.15.2-1.mga8
lib64qt5x11extras5-5.15.2-1.mga8
lib64qt5webkitwidgets5-5.212.0-1.alpha4.6.mga8
lib64qt5webenginecore5-5.15.2-2.mga8
lib64qt5quickcontrols2_5-5.15.2-1.mga8
lib64packagekitqt5_1-1.0.2-3.mga8
lib64qt5eglfskmssupport5-5.15.2-4.2.mga8
lib64signon-qt5_1-8.60-6.mga8
lib64qt5webenginewidgets5-5.15.2-2.mga8
openssh-askpass-qt5-2.1.0-9.mga8
lib64qt5test5-5.15.2-4.2.mga8
python3-qt5-gui-5.15.2-2.mga8
qtquickcontrols5-5.15.2-1.mga8
qttools5-qtdbus-5.15.2-2.mga8
qtxmlpatterns5-xmlpatterns-5.15.2-1.mga8
lib64qtsingleapplication-qt5_1-2.6.1-22.mga8
lib64phonon4qt5_4-4.11.1-2.mga8
lib64qt5multimedia5-5.15.2-1.mga8
python3-pyqt5-sip-4.19.24-1.mga8
lib64qt5multimediaquick5-5.15.2-1.mga8
lib64kf5pulseaudioqt_2-1.2-3.mga8
lib64mygpo-qt5_1-1.1.0-8.mga8
lib64qt5script5-5.15.2-1.mga8
qtsensors5-5.15.2-1.mga8
qtmultimedia5-5.15.2-1.mga8
lib64kf5modemmanagerqt6-5.76.0-1.mga8
qtbase5-common-5.15.2-4.2.mga8
lib64qt5positioning5-5.15.2-1.mga8
qtsvg5-5.15.2-1.1.mga8
python3-qt5-widgets-5.15.2-2.mga8
qttools5-qtpaths-5.15.2-2.mga8
lib64qt5quickshapes5-5.15.2-1.mga8
phonon4qt5-gstreamer-4.10.0-2.mga8
lib64qt5pdf5-5.15.2-2.mga8
lib64qt5quickwidgets5-5.15.2-1.mga8
lib64qt5lockedfile1-2.4.1-20.mga8
lib64qt5concurrent5-5.15.2-4.2.mga8
lib64accounts-qt5_1-1.16-2.mga8
qtwebengine5-5.15.2-2.mga8
lib64qt5quicktest5-5.15.2-1.mga8
lib64appstreamqt2-0.13.1-2.mga8
lib64qt5core5-5.15.2-4.2.mga8
lib64qt5widgets5-5.15.2-4.2.mga8
lib64poppler-qt5_1-20.12.1-1.mga8
lib64qt5iocompressor1-2.3.1-5.mga8
lib64qt5qmlmodels5-5.15.2-1.mga8
lib64qt5svg5-5.15.2-1.1.mga8
phonon4qt5-4.11.1-2.mga8
qca-qt5-2.3.1-5.mga8
lib64qt5xcbqpa5-5.15.2-4.2.mga8
lib64qt5networkauth5-5.15.2-1.mga8
lib64qt5sql5-5.15.2-4.2.mga8
lib64polkit-qt5-core-1_1-0.113.0-5.mga8
lib64marblewidget-qt5_28-20.12.0-1.mga8
lib64qt5multimediagsttools5-5.15.2-1.mga8
python3-qt5-quick-5.15.2-2.mga8
lib64polkit-qt5-agent-1_1-0.113.0-5.mga8
lib64qt5qmlworkerscript5-5.15.2-1.mga8
lib64qt5dbus5-5.15.2-4.2.mga8
lib64qt5waylandcompositor5-5.15.2-2.mga8
lib64qt5xml5-5.15.2-4.2.mga8
lib64qt5qml5-5.15.2-1.mga8
python3-qt5-dbus-5.15.2-2.mga8
lib64phonon4qt5experimental4-4.11.1-2.mga8
qtgraphicaleffects5-5.15.2-1.mga8
lib64qt5network5-5.15.2-4.2.mga8
bluez-qt-5.76.0-1.mga8
lib64qt5-database-plugin-sqlite-5.15.2-4.2.mga8
lib64qt5multimediawidgets5-5.15.2-1.mga8
lib64qt5sensors5-5.15.2-1.mga8
modemmanager-qt-5.76.0-1.mga8
lib64kf5bluezqt6-5.76.0-1.mga8
phonon4qt5-vlc-0.11.1-2.mga8
qtimageformats5-5.15.2-1.mga8
python3-qt5-network-5.15.2-2.mga8
lib64qt5quicktemplates2_5-5.15.2-1.mga8
qtdeclarative5-5.15.2-1.mga8
pinentry-qt5-1.1.1-1.mga8

Closing fixed for Mageia 8.
Please upgrade upstream RPM to 5.7 at least version.

CC: (none) => ouaurelien
Status: NEW => RESOLVED
Source RPM: qt4-4.8.7-33.mga8.src.rpm,qt4-4.8.7-26.2.mga7.src.rpm => qt4-4.8.7-33.mga8.src.rpm
Severity: major => normal
Version: 7 => 8
Resolution: (none) => FIXED

Comment 14 w unruh 2021-07-08 22:42:52 CEST
The problem was that QT_PLUGIN_PATH was set in /etc/profile.d/60qt5.sh
Checking my Mageia 8, it is not set in that file. You (Lewis) could check to see if it is being set there as some sort of hangover from you old Mga7, or check to see if 
qtbase5-common-5.15.2-4.2.mga8 package is installed and that it did not leave the old 7 version active.

Ie, it does seem that the bug is fixed in Mga8
Comment 15 Lewis Smith 2021-07-09 22:02:03 CEST
Checking my Mageia 8 system, under LxQt:
- QT_PLUGIN_PATH does not seem to exist (hence, is not set).
- qtbase5-common-5.15.2-4.2.mga8 is the only such named RPM, no mga7 version.
Just for confirmation.