Christophe Giboudeaux 2020-05-09 06:33:33 +00:00 committed by Git OBS Bridge
parent 3dd2a699ae
commit 610371c55a
5 changed files with 16 additions and 56 deletions

View File

@ -1,48 +0,0 @@
From c729361f9f8f6c0602d401d5e230ba63ab11a682 Mon Sep 17 00:00:00 2001
From: Jüri Valdmann <juri.valdmann@qt.io>
Date: Wed, 19 Feb 2020 14:15:34 +0100
Subject: [PATCH] Fix recursive deadlock in sandbox::InitLibcLocaltimeFunctions
QtWebEngineProcess overrides the C library's localtime* functions by redefining
the symbols in src/process/main.cpp and then using dlsym(RTLD_NEXT, ...) to
fetch the original symbols in //sandbox/linux/services/libc_interceptor.cc. The
functions InitLibcLocaltimeFunctions{,Impl} use pthread_once to guarantee that
this symbol resolution happens only once.
If dlsym fails, for example because the C library is earlier in the search path
than QtWebEngineCore, then InitLibcLocaltimeFunctionsImpl tries to print an
error message with LOG(ERROR). However, printing a log message involves also
printing the timestamp in the local time zone, using, of course, localtime_r.
Thus, InitLibcLocaltimeFunctions depends on localtime_r depends on
InitLibcLocaltimeFunctions, and we get a deadlock due to the recursive use of
pthread_once.
This deadlock happens only for utility processes and not for zygotes or
renderers, since the latter proxy the localtime* calls back to the main process.
(See service_manager::ZygoteMain, where the first function call is to
sandbox::SetAmZygoteOrRenderer, and compare with content::UtilityMain)
Task-number: QTBUG-82186
Change-Id: I32009e8482b2634c47082a4c89393dc61c22507e
---
Index: qtwebengine-everywhere-src-5.15.0-beta4/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
===================================================================
--- qtwebengine-everywhere-src-5.15.0-beta4.orig/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
+++ qtwebengine-everywhere-src-5.15.0-beta4/src/3rdparty/chromium/sandbox/linux/services/libc_interceptor.cc
@@ -190,6 +190,7 @@ static void InitLibcLocaltimeFunctionsIm
g_libc_localtime64_r =
reinterpret_cast<LocaltimeRFunction>(dlsym(RTLD_NEXT, "localtime64_r"));
+#if !defined(TOOLKIT_QT)
if (!g_libc_localtime || !g_libc_localtime_r) {
// https://bugs.chromium.org/p/chromium/issues/detail?id=16800
//
@@ -201,6 +202,7 @@ static void InitLibcLocaltimeFunctionsIm
" time related functions to misbehave. "
"https://bugs.chromium.org/p/chromium/issues/detail?id=16800";
}
+#endif
if (!g_libc_localtime)
g_libc_localtime = gmtime;

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Wed May 6 11:43:17 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.15.0-rc:
* New bugfix release
* For the changes between 5.14.2 and 5.15.0 please see:
http://code.qt.io/cgit/qt/qtwebengine.git/plain/dist/changes-5.15.0/?h=5.15.0
- Drop patches, now upstream:
* QTBUG-82186.patch
-------------------------------------------------------------------
Fri Apr 24 10:19:13 UTC 2020 - Ismail Dönmez <idonmez@suse.com>

View File

@ -35,16 +35,16 @@
%global _qtwebengine_dictionaries_dir %{_libqt5_datadir}/qtwebengine_dictionaries
Name: libqt5-qtwebengine
Version: 5.15.0~beta4
Version: 5.15.0~rc
Release: 0
Summary: Qt 5 WebEngine Library
License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
Group: Development/Libraries/X11
URL: https://www.qt.io
%define base_name libqt5
%define real_version 5.15.0-beta4
%define real_version 5.15.0-rc
%define so_version 5.15.0
%define tar_version qtwebengine-everywhere-src-5.15.0-beta4
%define tar_version qtwebengine-everywhere-src-5.15.0-rc
Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz
Source1: baselibs.conf
# PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6
@ -53,8 +53,6 @@ Patch1: armv6-ffmpeg-no-thumb.patch
Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff
# PATCH-FIX-UPSTREAM 0001-fix-build-after-y2038-changes-in-glibc.patch
Patch3: 0001-fix-build-after-y2038-changes-in-glibc.patch
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/291216
Patch5: QTBUG-82186.patch
# PATCH-FIX-OPENSUSE
Patch6: some-more-includes-gcc10.patch
Patch7: fix1163766.patch

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:96da8e77eaf78d89a3f1874b4033cfcff45f84d178a21584d351b587b2fa87aa
size 278256808

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1627a2ac6114e851b37adfeda2bb8c62fd7116a0e8a375df72e2fdd4dcbcacaa
size 278219516