[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