Albert Astals Cid has proposed merging 
lp:~aacid/kubuntu-packaging/qtbase-opensource-src into 
lp:~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src.

Commit message:
Fix crash on dbus shutdown

Already accepted upstream at https://codereview.qt-project.org/#/c/86825/

Requested reviews:
  Kubuntu Packagers (kubuntu-packagers)
Related bugs:
  Bug #1332598 in Unity 8: "make testShell crashes"
  https://bugs.launchpad.net/unity8/+bug/1332598

For more details, see:
https://code.launchpad.net/~aacid/kubuntu-packaging/qtbase-opensource-src/+merge/225134

Without it i get 

==20075== Invalid read of size 4
==20075==    at 0x1194E793: QList<QString>::~QList() (in 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x11961BD9: QHash<QString, 
QDBusConnectionPrivate::SignalHook>::deleteNode2(QHashData::Node*) (in 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x6445A68: QHashData::free_helper(void (*)(QHashData::Node*)) 
(in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==20075==    by 0x1195861C: QDBusConnectionPrivate::~QDBusConnectionPrivate() 
(in /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x11958938: QDBusConnectionPrivate::~QDBusConnectionPrivate() 
(in /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x1194CEF5: (anonymous 
namespace)::Q_QGS__q_systemBus::innerFunction()::Holder::~Holder() (in 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x5090988: __run_exit_handlers (exit.c:82)
==20075==    by 0x50909D4: exit (exit.c:104)
==20075==    by 0x5077ECB: (below main) (libc-start.c:321)
==20075==  Address 0x2821a4e0 is not stack'd, malloc'd or (recently) free'd
==20075== 
==20075== 
==20075== Process terminating with default action of signal 11 (SIGSEGV)
==20075==  Access not within mapped region at address 0x2821A4E0
==20075==    at 0x1194E793: QList<QString>::~QList() (in 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x11961BD9: QHash<QString, 
QDBusConnectionPrivate::SignalHook>::deleteNode2(QHashData::Node*) (in 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x6445A68: QHashData::free_helper(void (*)(QHashData::Node*)) 
(in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==20075==    by 0x1195861C: QDBusConnectionPrivate::~QDBusConnectionPrivate() 
(in /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x11958938: QDBusConnectionPrivate::~QDBusConnectionPrivate() 
(in /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x1194CEF5: (anonymous 
namespace)::Q_QGS__q_systemBus::innerFunction()::Holder::~Holder() (in 
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5.3.0)
==20075==    by 0x5090988: __run_exit_handlers (exit.c:82)
==20075==    by 0x50909D4: exit (exit.c:104)
==20075==    by 0x5077ECB: (below main) (libc-start.c:321)

on unity8's make testShell shutdown
-- 
https://code.launchpad.net/~aacid/kubuntu-packaging/qtbase-opensource-src/+merge/225134
Your team Kubuntu Packagers is requested to review the proposed merge of 
lp:~aacid/kubuntu-packaging/qtbase-opensource-src into 
lp:~kubuntu-packagers/kubuntu-packaging/qtbase-opensource-src.
=== modified file 'debian/changelog'
--- debian/changelog	2014-06-19 05:28:43 +0000
+++ debian/changelog	2014-07-01 11:06:40 +0000
@@ -1,3 +1,9 @@
+qtbase-opensource-src (5.3.0+dfsg-2ubuntu5) utopic; urgency=medium
+
+  * Fix crash on dbus shutdown
+
+ -- Albert Astals Cid <[email protected]>  Tue, 01 Jul 2014 13:00:56 +0200
+
 qtbase-opensource-src (5.3.0+dfsg-2ubuntu4) utopic; urgency=medium
 
   * Update symbols

=== added file 'debian/patches/dbus_correct_signal_name_disconnect.patch'
--- debian/patches/dbus_correct_signal_name_disconnect.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/dbus_correct_signal_name_disconnect.patch	2014-07-01 11:06:40 +0000
@@ -0,0 +1,30 @@
+From 2160e7e0b7842d4ef49fdd435b4a7f127d479b90 Mon Sep 17 00:00:00 2001
+From: Jakub Adam <[email protected]>
+Date: Wed, 4 Jun 2014 14:48:02 +0200
+Subject: [PATCH] Use correct signal name when disconnecting "NameOwnerChanged"
+
+A disconnectSignal() call with a wrong signal name caused that hook
+wasn't found and thus kept in QDBusConnectionPrivate::signalHooks
+forever.
+
+Change-Id: Id7cda225be7580529fc835b377636226abb229f9
+---
+ src/dbus/qdbusintegrator.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
+index 1fef6d4..d4079e8 100644
+--- a/src/dbus/qdbusintegrator.cpp
++++ b/src/dbus/qdbusintegrator.cpp
+@@ -2267,7 +2267,7 @@ QDBusConnectionPrivate::disconnectSignal(SignalHookHash::Iterator &it)
+                     watchedServices.erase(sit);
+                     disconnectSignal(dbusServiceString(), QString(), dbusInterfaceString(),
+                                   QLatin1String("NameOwnerChanged"), QStringList() << hook.service, QString(),
+-                                  this, SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
++                                  this, SLOT(serviceOwnerChangedNoLock(QString,QString,QString)));
+                 }
+             }
+         }
+-- 
+2.0.1
+

=== modified file 'debian/patches/series'
--- debian/patches/series	2014-06-09 05:36:48 +0000
+++ debian/patches/series	2014-07-01 11:06:40 +0000
@@ -20,3 +20,4 @@
 Add-virtual-function-to-QFontEngine-report-if-outlin.patch
 Fix-FT-glyph-outline-to-path-conversion.patch
 Fix_crash_in_QOpenGLTextureallocateStorage.patch
+dbus_correct_signal_name_disconnect.patch

-- 
kubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel

Reply via email to