Bugzilla – Bug 1163744
QtWebEngine video playback doesn't start (after update to Qt 5.14.1)
Last modified: 2021-11-02 14:27:39 UTC
Falkon and other QtWebEngine clients can't play video. Any video on youtube or peertube (e.g. at https://kde.org/announcements/plasma-5.18.0.php ) or HTML5 video test pages. Buffer is filling and network shows video file is loaded but it doesn't start to actually play. YouTube shows previews on timeline, but not the first frame. Video without poster has no shown content. I've noticed this after update to Qt 5.14.1, though maybe this was present earlier with 5.14, I'm not sure. Noticed at least with snapshot 20200201 and present till current 20200213. Can't see anything related in logs of Falkon or when run QtWebEngine from my app in Qt Creator.
PS found this, but I don't think is specific to Falkon as any QtWebEngine client is affected: https://bugs.kde.org/show_bug.cgi?id=416844
I tried to reproduce this on Leap 15.1 with webengine 5.14.1 and it works fine. YouTube out of the box, but the peertube video on kde.org needed proprietary codecs. I'll try on Krypton next, then TW, to narrow it down.
I can reproduce it even with WebEngine 5.14.0. It seems to be related to the "Your system is broken: dlsym doesn't work!" message. It works with either QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox" or QTWEBENGINE_CHROMIUM_FLAGS="--single-process".
It's caused by the order of the DT_NEEDED entries being different between builds for TW and Leap: # readelf -d /usr/lib64/qt5/libexec/QtWebEngineProcess Dynamic section at offset 0x2db0 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x0000000000000001 (NEEDED) Shared library: [libQt5Core.so.5] 0x0000000000000001 (NEEDED) Shared library: [libQt5WebEngineCore.so.5] 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6] This leads to RTLD_NEXT called from libQt5WebEngineCore.so.5 not looking at libc.so.6 again. On Leap it looks like this: # readelf -d /usr/lib64/qt5/libexec/QtWebEngineProcess Dynamic section at offset 0x1db0 contains 30 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libQt5Core.so.5] 0x0000000000000001 (NEEDED) Shared library: [libQt5WebEngineCore.so.5] 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] As a workaround, LD_PRELOAD=libQt5WebEngineCore.so.5 can be used to move it before libc.so.6 on the search order list.
Filed upstream as https://bugreports.qt.io/browse/QTBUG-82186.
Wow. Thank you a lot! Not very expected/obvious reason (for me at least). And thanks again for workaround, applied it to ~/.local desktop file for Falkon.
Upstream was able to reproduce the issue with "-flto=auto" and tracked it down to a deadlock in the audio thread while printing the error message (yes, really!). @binutils experts: What causes the specific order of DT_NEEDED entries? Is there any guarantee about those (without -flto=auto)? If not, what's the best way to ensure that RTLD_NEXT looks at libc as well?
The DT_NEEDED tags are added in the order the libraries are passed to the linker.
[11023s] g++ -Wl,--as-needed -Wl,--no-undefined -Wl,--no-keep-memory -Wl,--hash-size=31 -Wl,--reduce-memory-overheads -Wl,--enable-new-dtags -Wl,-rpath-link,/home/abuild/rpmbuild/BUILD/qtwebengine-everywhere-src-5.14.1/lib -o ../../libexec/QtWebEngineProcess .obj/main.o -L/usr/lib64 /usr/lib64/libQt5Gui.so /usr/lib64/libQt5Core.so -lGL -lpthread /home/abuild/rpmbuild/BUILD/qtwebengine-everywhere-src-5.14.1/lib/libQt5WebEngineCore.so /usr/lib64/libQt5Quick.so /usr/lib64/libQt5QmlModels.so /usr/lib64/libQt5WebChannel.so /usr/lib64/libQt5Qml.so /usr/lib64/libQt5Network.so /usr/lib64/libQt5Gui.so /usr/lib64/libQt5Positioning.so /usr/lib64/libQt5Core.so A simple testcase doesn't show the bad behavior: echo 'void foo() {}' > libt.c echo 'void foo(); int main() { foo(); }' > t.c gcc -o libt.so -shared libt.c -Wl,-soname,libt.so -fPIC -flto gcc -c t.c -flto gcc t.o libt.so readelf -d a.out | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [libt.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] that's with Leap (ld 2.32), can somebody try Tumbleweed? It looks like a binutils issue to me.
Just saw that libqt5-qtwebengine pulls in binutils-gold and has [ 134s] + sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' src/3rdparty/chromium/build/toolchain/linux/BUILD.gn so I wonder if it ends up using gold behind our backs? OTOH for my testcase that doesn't make a difference (on Leap).
(In reply to Andreas Schwab from comment #8) > The DT_NEEDED tags are added in the order the libraries are passed to the > linker. Ok, so libc should be at the end as it's not added explicitly, right? (In reply to Richard Biener from comment #9) > [11023s] g++ -Wl,--as-needed -Wl,--no-undefined -Wl,--no-keep-memory > -Wl,--hash-size=31 -Wl,--reduce-memory-overheads -Wl,--enable-new-dtags > -Wl,-rpath-link,/home/abuild/rpmbuild/BUILD/qtwebengine-everywhere-src-5.14. > 1/lib -o ../../libexec/QtWebEngineProcess .obj/main.o -L/usr/lib64 > /usr/lib64/libQt5Gui.so /usr/lib64/libQt5Core.so -lGL -lpthread > /home/abuild/rpmbuild/BUILD/qtwebengine-everywhere-src-5.14.1/lib/ > libQt5WebEngineCore.so /usr/lib64/libQt5Quick.so > /usr/lib64/libQt5QmlModels.so /usr/lib64/libQt5WebChannel.so > /usr/lib64/libQt5Qml.so /usr/lib64/libQt5Network.so /usr/lib64/libQt5Gui.so > /usr/lib64/libQt5Positioning.so /usr/lib64/libQt5Core.so > > A simple testcase doesn't show the bad behavior: > > echo 'void foo() {}' > libt.c > echo 'void foo(); int main() { foo(); }' > t.c > gcc -o libt.so -shared libt.c -Wl,-soname,libt.so -fPIC -flto > gcc -c t.c -flto > gcc t.o libt.so > readelf -d a.out | grep NEEDED > 0x0000000000000001 (NEEDED) Shared library: [libt.so] > 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] > > that's with Leap (ld 2.32), can somebody try Tumbleweed? It looks like a > binutils issue to me. Tried on TW, same output. Both with -fuse-ld=bfd and -fuse-ld=gold. However: gcc -fuse-ld=bfd -Wl,--as-needed t.o libt.so readelf -d a.out | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x0000000000000001 (NEEDED) Shared library: [libt.so] So --as-needed seems to be the difference! With gold it behaves as expected: gcc -fuse-ld=gold -Wl,--as-needed t.o libt.so readelf -d a.out | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [libt.so] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] (In reply to Richard Biener from comment #10) > Just saw that libqt5-qtwebengine pulls in binutils-gold and has > > [ 134s] + sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' > src/3rdparty/chromium/build/toolchain/linux/BUILD.gn > > so I wonder if it ends up using gold behind our backs? OTOH for my testcase > that doesn't make a difference (on Leap). The BuildRequires was added a long time ago, but "use_gold=false", so it's a noop...
I can confirm this bug on Tumbleweed as of snapshot 20200219.
OK, upstream has committed a fix, I'm pushing this to our binutils package which unfortunately already has a version update staged in the devel project. I'll see if I can side-step that to get the fix into factory earlier, it's for now in home:rguenther:branches:openSUSE:Factory/binutils where I'll try a SR from. Maybe you can see whether building the affected package against that repo fixes the issue for you after it rebuilt? (I'm not a KDE or tumbleweed user)
(In reply to Richard Biener from comment #13) > OK, upstream has committed a fix, I'm pushing this to our binutils package > which unfortunately already has a version update staged in the devel project. > I'll see if I can side-step that to get the fix into factory earlier, it's > for now in home:rguenther:branches:openSUSE:Factory/binutils where I'll try > a SR from. You have to submit from the devel project, but what you can do is: - revert the devel project to before the version update - apply the fix - submit - reapply the version update > Maybe you can see whether building the affected package against > that repo fixes the issue for you after it rebuilt? (I'm not a KDE or > tumbleweed user) Can you just link libqt5-qtwebengine into that project?
(In reply to Fabian Vogt from comment #14) > (In reply to Richard Biener from comment #13) > > OK, upstream has committed a fix, I'm pushing this to our binutils package > > which unfortunately already has a version update staged in the devel project. > > I'll see if I can side-step that to get the fix into factory earlier, it's > > for now in home:rguenther:branches:openSUSE:Factory/binutils where I'll try > > a SR from. > > You have to submit from the devel project, but what you can do is: > - revert the devel project to before the version update > - apply the fix > - submit > - reapply the version update Ugh. That's awkward. I'll try a bot-fight instead. > > Maybe you can see whether building the affected package against > > that repo fixes the issue for you after it rebuilt? (I'm not a KDE or > > tumbleweed user) > > Can you just link libqt5-qtwebengine into that project? Done. I'll do the factory submission in one or another way once somebody confirms the fix helps.
So home:rguenther:branches:openSUSE:Factory has libqt5-qtwebengine re-built in the snapshot repo (failed in the standard one for some reason, rebuilding there now). Can somebody check the result please? (from the snapshot repo?)
(In reply to Richard Biener from comment #16) > So home:rguenther:branches:openSUSE:Factory has libqt5-qtwebengine re-built > in the snapshot repo (failed in the standard one for some reason, rebuilding > there now). Can somebody check the result please? (from the snapshot repo?) Checked. The error message is gone and videos play fine now.
(In reply to Richard Biener from comment #16) > So home:rguenther:branches:openSUSE:Factory has libqt5-qtwebengine re-built > in the snapshot repo (failed in the standard one for some reason, rebuilding > there now). Can somebody check the result please? (from the snapshot repo?) Same, video is playing fine without workaround and no error message.
This is an autogenerated message for OBS integration: This bug (1163744) was mentioned in https://build.opensuse.org/request/show/779849 Factory / binutils
This is an autogenerated message for OBS integration: This bug (1163744) was mentioned in https://build.opensuse.org/request/show/781141 Factory / libqt5-qtwebengine
This is an autogenerated message for OBS integration: This bug (1163744) was mentioned in https://build.opensuse.org/request/show/788599 Factory / binutils
Hi, this works fine now, thank you, should I close it as resolved?
(In reply to Mykola Krachkovsky from comment #22) > Hi, this works fine now, thank you, should I close it as resolved? Yup.
SUSE-SU-2020:3060-1: An update that solves 8 vulnerabilities, contains three features and has 5 fixes is now available. Category: security (moderate) Bug References: 1126826,1126829,1126831,1140126,1142649,1143609,1153768,1153770,1157755,1160254,1160590,1163333,1163744 CVE References: CVE-2019-12972,CVE-2019-14250,CVE-2019-14444,CVE-2019-17450,CVE-2019-17451,CVE-2019-9074,CVE-2019-9075,CVE-2019-9077 JIRA References: ECO-2373,SLE-7464,SLE-7903 Sources used: SUSE Linux Enterprise Module for Packagehub Subpackages 15-SP2 (src): binutils-2.35-7.11.1 SUSE Linux Enterprise Module for Packagehub Subpackages 15-SP1 (src): binutils-2.35-7.11.1 SUSE Linux Enterprise Module for Development Tools 15-SP2 (src): binutils-2.35-7.11.1 SUSE Linux Enterprise Module for Development Tools 15-SP1 (src): binutils-2.35-7.11.1 SUSE Linux Enterprise Module for Basesystem 15-SP2 (src): binutils-2.35-7.11.1 SUSE Linux Enterprise Module for Basesystem 15-SP1 (src): binutils-2.35-7.11.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
openSUSE-SU-2020:1790-1: An update that solves 8 vulnerabilities and has 5 fixes is now available. Category: security (moderate) Bug References: 1126826,1126829,1126831,1140126,1142649,1143609,1153768,1153770,1157755,1160254,1160590,1163333,1163744 CVE References: CVE-2019-12972,CVE-2019-14250,CVE-2019-14444,CVE-2019-17450,CVE-2019-17451,CVE-2019-9074,CVE-2019-9075,CVE-2019-9077 JIRA References: Sources used: openSUSE Leap 15.1 (src): binutils-2.35-lp151.3.9.1, cross-aarch64-binutils-2.35-lp151.3.9.1, cross-arm-binutils-2.35-lp151.3.9.1, cross-avr-binutils-2.35-lp151.3.9.1, cross-epiphany-binutils-2.35-lp151.3.9.1, cross-hppa-binutils-2.35-lp151.3.9.1, cross-hppa64-binutils-2.35-lp151.3.9.1, cross-i386-binutils-2.35-lp151.3.9.1, cross-ia64-binutils-2.35-lp151.3.9.1, cross-m68k-binutils-2.35-lp151.3.9.1, cross-mips-binutils-2.35-lp151.3.9.1, cross-ppc-binutils-2.35-lp151.3.9.1, cross-ppc64-binutils-2.35-lp151.3.9.1, cross-ppc64le-binutils-2.35-lp151.3.9.1, cross-riscv64-binutils-2.35-lp151.3.9.1, cross-rx-binutils-2.35-lp151.3.9.1, cross-s390-binutils-2.35-lp151.3.9.1, cross-s390x-binutils-2.35-lp151.3.9.1, cross-sparc-binutils-2.35-lp151.3.9.1, cross-sparc64-binutils-2.35-lp151.3.9.1, cross-spu-binutils-2.35-lp151.3.9.1
openSUSE-SU-2020:1804-1: An update that solves 8 vulnerabilities and has 5 fixes is now available. Category: security (moderate) Bug References: 1126826,1126829,1126831,1140126,1142649,1143609,1153768,1153770,1157755,1160254,1160590,1163333,1163744 CVE References: CVE-2019-12972,CVE-2019-14250,CVE-2019-14444,CVE-2019-17450,CVE-2019-17451,CVE-2019-9074,CVE-2019-9075,CVE-2019-9077 JIRA References: Sources used: openSUSE Leap 15.2 (src): binutils-2.35-lp152.4.3.1, cross-aarch64-binutils-2.35-lp152.4.3.1, cross-arm-binutils-2.35-lp152.4.3.1, cross-avr-binutils-2.35-lp152.4.3.1, cross-epiphany-binutils-2.35-lp152.4.3.1, cross-hppa-binutils-2.35-lp152.4.3.1, cross-hppa64-binutils-2.35-lp152.4.3.1, cross-i386-binutils-2.35-lp152.4.3.1, cross-ia64-binutils-2.35-lp152.4.3.1, cross-m68k-binutils-2.35-lp152.4.3.1, cross-mips-binutils-2.35-lp152.4.3.1, cross-ppc-binutils-2.35-lp152.4.3.1, cross-ppc64-binutils-2.35-lp152.4.3.1, cross-ppc64le-binutils-2.35-lp152.4.3.1, cross-riscv64-binutils-2.35-lp152.4.3.1, cross-rx-binutils-2.35-lp152.4.3.1, cross-s390-binutils-2.35-lp152.4.3.1, cross-s390x-binutils-2.35-lp152.4.3.1, cross-sparc-binutils-2.35-lp152.4.3.1, cross-sparc64-binutils-2.35-lp152.4.3.1, cross-spu-binutils-2.35-lp152.4.3.1, cross-xtensa-binutils-2.35-lp152.4.3.1
SUSE-SU-2020:3552-1: An update that solves 8 vulnerabilities, contains three features and has 6 fixes is now available. Category: security (moderate) Bug References: 1126826,1126829,1126831,1140126,1142649,1143609,1153768,1153770,1157755,1160254,1160590,1163333,1163744,1179036 CVE References: CVE-2019-12972,CVE-2019-14250,CVE-2019-14444,CVE-2019-17450,CVE-2019-17451,CVE-2019-9074,CVE-2019-9075,CVE-2019-9077 JIRA References: ECO-2373,SLE-7464,SLE-7903 Sources used: SUSE Linux Enterprise Server for SAP 15 (src): binutils-2.35.1-6.15.1 SUSE Linux Enterprise Server 15-LTSS (src): binutils-2.35.1-6.15.1 SUSE Linux Enterprise High Performance Computing 15-LTSS (src): binutils-2.35.1-6.15.1 SUSE Linux Enterprise High Performance Computing 15-ESPOS (src): binutils-2.35.1-6.15.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
This is an autogenerated message for OBS integration: This bug (1163744) was mentioned in https://build.opensuse.org/request/show/881836 15.2 / libqt5-qtwebengine
This is an autogenerated message for OBS integration: This bug (1163744) was mentioned in https://build.opensuse.org/request/show/884063 15.3 / libqt5-qtwebengine
openSUSE-SU-2021:0973-1: An update that fixes 29 vulnerabilities is now available. Category: security (important) Bug References: 1130395,1158516,1163744,1163766,1182233 CVE References: CVE-2020-16044,CVE-2021-21118,CVE-2021-21119,CVE-2021-21120,CVE-2021-21121,CVE-2021-21122,CVE-2021-21123,CVE-2021-21125,CVE-2021-21126,CVE-2021-21127,CVE-2021-21128,CVE-2021-21129,CVE-2021-21130,CVE-2021-21131,CVE-2021-21132,CVE-2021-21135,CVE-2021-21137,CVE-2021-21140,CVE-2021-21141,CVE-2021-21145,CVE-2021-21146,CVE-2021-21147,CVE-2021-21148,CVE-2021-21149,CVE-2021-21150,CVE-2021-21152,CVE-2021-21153,CVE-2021-21156,CVE-2021-21157 JIRA References: Sources used: openSUSE Leap 15.2 (src): libqt5-qtwebengine-5.15.3-lp152.3.3.4
openSUSE-SU-2021:1016-1: An update that fixes 29 vulnerabilities is now available. Category: security (important) Bug References: 1130395,1158516,1163744,1163766,1182233 CVE References: CVE-2020-16044,CVE-2021-21118,CVE-2021-21119,CVE-2021-21120,CVE-2021-21121,CVE-2021-21122,CVE-2021-21123,CVE-2021-21125,CVE-2021-21126,CVE-2021-21127,CVE-2021-21128,CVE-2021-21129,CVE-2021-21130,CVE-2021-21131,CVE-2021-21132,CVE-2021-21135,CVE-2021-21137,CVE-2021-21140,CVE-2021-21141,CVE-2021-21145,CVE-2021-21146,CVE-2021-21147,CVE-2021-21148,CVE-2021-21149,CVE-2021-21150,CVE-2021-21152,CVE-2021-21153,CVE-2021-21156,CVE-2021-21157 JIRA References: Sources used: openSUSE Backports SLE-15-SP2 (src): libqt5-qtwebengine-5.15.3-bp152.3.3.1
SUSE-SU-2021:3593-1: An update that solves 21 vulnerabilities, contains 7 features and has 8 fixes is now available. Category: security (moderate) Bug References: 1126826,1126829,1126831,1140126,1142649,1143609,1153768,1153770,1157755,1160254,1160590,1163333,1163744,1179036,1179341,1179898,1179899,1179900,1179901,1179902,1179903,1180451,1180454,1180461,1181452,1182252,1183511,1184620,1184794 CVE References: CVE-2019-12972,CVE-2019-14250,CVE-2019-14444,CVE-2019-17450,CVE-2019-17451,CVE-2019-9074,CVE-2019-9075,CVE-2019-9077,CVE-2020-16590,CVE-2020-16591,CVE-2020-16592,CVE-2020-16593,CVE-2020-16598,CVE-2020-16599,CVE-2020-35448,CVE-2020-35493,CVE-2020-35496,CVE-2020-35507,CVE-2021-20197,CVE-2021-20284,CVE-2021-3487 JIRA References: ECO-2373,PM-2767,SLE-18637,SLE-19618,SLE-21561,SLE-7464,SLE-7903 Sources used: SUSE OpenStack Cloud Crowbar 9 (src): binutils-2.37-9.39.1 SUSE OpenStack Cloud Crowbar 8 (src): binutils-2.37-9.39.1 SUSE OpenStack Cloud 9 (src): binutils-2.37-9.39.1 SUSE OpenStack Cloud 8 (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Software Development Kit 12-SP5 (src): binutils-2.37-9.39.1, cross-ppc-binutils-2.37-9.39.1, cross-spu-binutils-2.37-9.39.1 SUSE Linux Enterprise Server for SAP 12-SP4 (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Server for SAP 12-SP3 (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Server 12-SP5 (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Server 12-SP4-LTSS (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Server 12-SP3-LTSS (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Server 12-SP3-BCL (src): binutils-2.37-9.39.1 SUSE Linux Enterprise Server 12-SP2-BCL (src): binutils-2.37-9.39.1 HPE Helion Openstack 8 (src): binutils-2.37-9.39.1 NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.