[SCM] qtbase packaging branch, ubuntu, updated. 5.6.1+dfsg-3ubuntu3-2-g8448477
Timo Jyrinki
timo at moszumanska.debian.org
Wed Sep 7 08:54:38 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtbase.git;a=commitdiff;h=8448477
The following commit has been merged in the ubuntu branch:
commit 84484774b6434b89c2757a20b8e04afa401cd277
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date: Wed Sep 7 08:54:34 2016 +0000
debian/patches/Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch:
* debian/patches/Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch:
- Antoher DBus fix needed for telephony-service (LP: #1620945)
---
debian/changelog | 4 +-
...onnectionPrivate-relaySignal-be-called-in.patch | 57 ++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 61 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index 9c316c2..135aafd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
qtbase-opensource-src (5.6.1+dfsg-3ubuntu4) UNRELEASED; urgency=medium
- *
+ [ Timo Jyrinki ]
+ * debian/patches/Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch:
+ - Antoher DBus fix needed for telephony-service (LP: #1620945)
-- Ubuntu Developers <ubuntu-devel-discuss at ubuntu.com> Wed, 07 Sep 2016 07:42:31 +0000
diff --git a/debian/patches/Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch b/debian/patches/Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch
new file mode 100644
index 0000000..e72e7c2
--- /dev/null
+++ b/debian/patches/Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch
@@ -0,0 +1,57 @@
+From caeff0c86fc307e0873ab1303165fe51593c54b8 Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira at intel.com>
+Date: Tue, 6 Sep 2016 11:41:00 -0700
+Subject: [PATCH] Make QDBusConnectionPrivate::relaySignal be called in the
+ right thread
+
+This function sends D-Bus messages directly (in huntAndEmit), so it
+should only be called from the QDBusConnectionManager thread. Somehow, I
+missed this in the Qt 5.6 refactoring of QtDBus.
+
+Being called in the wrong thread means that there's a visible behavior
+change compared to Qt 5.5: if the user code sent a method call or method
+return/error and then emitted a signal, we'd have two threads racing to
+send the D-Bus messages. This was observed in Telepathy-Qt code: certain
+signals arrived before a method return, even though they were clearly
+emitted by a queued QMetaObject::invokeMethod.
+
+In addition to that, we have has an internal problem (though not
+observed): the libdbus-1 timer and socket callbacks would be called in
+the wrong thread and we no longer have protection against that.
+
+Unit testing not possible since this is a race condition.
+
+Change-Id: I9e96ecd4f6aa4ff0ae08fffd1471d002142613d6
+---
+ src/dbus/qdbusintegrator.cpp | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
+index 147966b..dc78510 100644
+--- a/src/dbus/qdbusintegrator.cpp
++++ b/src/dbus/qdbusintegrator.cpp
+@@ -1245,6 +1245,7 @@ void QDBusConnectionPrivate::relaySignal(QObject *obj, const QMetaObject *mo, in
+ break;
+ }
+
++ checkThread();
+ QDBusReadLocker locker(RelaySignalAction, this);
+ QDBusMessage message = QDBusMessage::createSignal(QLatin1String("/"), interface,
+ QLatin1String(memberName));
+@@ -2356,12 +2357,9 @@ void QDBusConnectionPrivate::registerObject(const ObjectTreeNode *node)
+ connector->connectAllSignals(node->obj);
+ }
+
+- // disconnect and reconnect to avoid duplicates
+- connector->disconnect(SIGNAL(relaySignal(QObject*,const QMetaObject*,int,QVariantList)),
+- this, SLOT(relaySignal(QObject*,const QMetaObject*,int,QVariantList)));
+ connect(connector, SIGNAL(relaySignal(QObject*,const QMetaObject*,int,QVariantList)),
+ this, SLOT(relaySignal(QObject*,const QMetaObject*,int,QVariantList)),
+- Qt::DirectConnection);
++ Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection));
+ }
+ }
+
+--
+2.9.3
+
diff --git a/debian/patches/series b/debian/patches/series
index 149c63b..0ae1021 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -26,3 +26,4 @@ net-bearer-nm-disconnect-ap-signals7.patch
qnam-ubuntu-fix6.patch
disable_overlay_scrollbars.diff
allow_native_menubar.diff
+Make-QDBusConnectionPrivate-relaySignal-be-called-in.patch
--
qtbase packaging
More information about the pkg-kde-commits
mailing list