Bug 374001

Summary: kaccounts-integration crashes when configuring some online accounts
Product: [Frameworks and Libraries] KAccounts Reporter: Kwanza.Pili
Component: KCMAssignee: Telepathy Bugs <kde-telepathy-bugs>
Status: RESOLVED INTENTIONAL    
Severity: normal    
Priority: NOR    
Version: git-latest   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Kwanza.Pili 2016-12-21 20:18:55 UTC
The latest version kaccounts-integration (16.12.0) cannot create some types of online accounts (e.g. google, facebook, ...). The generic error is "cannot find generic-oauth plugin" despite the fact that the plugin is installed. To access it, I ran "kcmshell5 kcm_kaccounts" under gdb. After the app starts, I choose "Create" which brings up the menu list. Then choose any of the offending protocols (e.g. google or facebook). An error dialog appears complaining about the oauth plugin. Then the segmentation fault results with the following backtrace:

*** Error in `/opt/kde/bin/kcmshell5': double free or corruption (!prev): 0x0000555555a6b210 ***
======= Backtrace: =========
Thread 1 "kcmshell5" received signal SIGABRT, Aborted.
0x00007ffff78628af in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff78628af in raise () from /lib64/libc.so.6
#1  0x00007ffff7863caa in abort () from /lib64/libc.so.6
#2  0x00007ffff78a0460 in __libc_message () from /lib64/libc.so.6
#3  0x00007ffff78a6816 in malloc_printerr () from /lib64/libc.so.6
#4  0x00007ffff78a700e in _int_free () from /lib64/libc.so.6
#5  0x00007fffd8b78042 in QTypedArrayData<unsigned short>::deallocate (data=<optimized out>)
    at /opt/kde/include/qt5/QtCore/qarraydata.h:228
#6  QString::~QString (this=<optimized out>, __in_chrg=<optimized out>)
    at /opt/kde/include/qt5/QtCore/qstring.h:1078
#7  QPair<QString, QString>::~QPair (this=<optimized out>, __in_chrg=<optimized out>)
    at /opt/kde/include/qt5/QtCore/qpair.h:49
#8  QHashNode<QPair<QString, QString>, Tp::WeakPtr<Tp::DBusProxy> >::~QHashNode (this=0x5555559b4e70, 
    __in_chrg=<optimized out>) at /opt/kde/include/qt5/QtCore/qhash.h:147
#9  QHash<QPair<QString, QString>, Tp::WeakPtr<Tp::DBusProxy> >::deleteNode2 (node=0x5555559b4e70)
    at /opt/kde/include/qt5/QtCore/qhash.h:533
#10 0x00007ffff5754d09 in QHashData::free_helper(void (*)(QHashData::Node*)) ()
   from /opt/kde/lib64/libQt5Core.so.5
#11 0x00007fffd8b7600c in QHash<QPair<QString, QString>, Tp::WeakPtr<Tp::DBusProxy> >::freeData (
    this=0x555555877650, x=<optimized out>) at /opt/kde/include/qt5/QtCore/qhash.h:573
#12 QHash<QPair<QString, QString>, Tp::WeakPtr<Tp::DBusProxy> >::~QHash (this=0x555555877650, 
    __in_chrg=<optimized out>) at /opt/kde/include/qt5/QtCore/qhash.h:252
#13 Tp::DBusProxyFactory::Cache::~Cache (this=0x555555877640, __in_chrg=<optimized out>)
    at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/dbus-proxy-factory.cpp:223
#14 Tp::DBusProxyFactory::Cache::~Cache (this=0x555555877640, __in_chrg=<optimized out>)
    at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/dbus-proxy-factory.cpp:225
#15 0x00007fffd8b76159 in Tp::DBusProxyFactory::Private::~Private (this=0x555555877620, 
    __in_chrg=<optimized out>) at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/dbus-proxy-factory.cpp:50
#16 Tp::DBusProxyFactory::~DBusProxyFactory (this=0x555555877540, __in_chrg=<optimized out>)
    at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/dbus-proxy-factory.cpp:85
#17 0x00007fffd8b24019 in Tp::ConnectionFactory::~ConnectionFactory (this=0x555555877540, 
    __in_chrg=<optimized out>) at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/connection-factory.cpp:84
#18 0x00007fffd8a48db1 in Tp::SharedPtr<Tp::ConnectionFactory const>::~SharedPtr (this=0x555555b46bd8, 
    __in_chrg=<optimized out>) at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/shared-ptr.h:139
#19 Tp::AccountManager::Private::~Private (this=0x555555b46bb0, __in_chrg=<optimized out>)
    at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/account-manager.cpp:137
#20 0x00007fffd8a48e3d in Tp::AccountManager::~AccountManager (this=0x5555558354c0, __in_chrg=<optimized out>)
    at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/account-manager.cpp:447
---Type <return> to continue, or q <return> to quit---
#21 0x00007fffd8a48e99 in Tp::AccountManager::~AccountManager (this=0x5555558354c0, __in_chrg=<optimized out>)
    at /usr/src/debug/telepathy-qt-0.9.7/TelepathyQt/account-manager.cpp:448
#22 0x00007fffd91e6dbc in ?? () from /opt/kde/lib64/qt5/plugins/kaccounts/ui/ktpaccountskcm_plugin_kaccounts.so
#23 0x00007fffd91e6e99 in ?? () from /opt/kde/lib64/qt5/plugins/kaccounts/ui/ktpaccountskcm_plugin_kaccounts.so
#24 0x00007fffe091a61e in qDeleteAll<QList<KAccountsUiPlugin*>::const_iterator> (end=..., begin=...)
    at /opt/kde/include/qt5/QtCore/qalgorithms.h:323
#25 qDeleteAll<QList<KAccountsUiPlugin*> > (c=...) at /opt/kde/include/qt5/QtCore/qalgorithms.h:331
#26 UiPluginsManagerPrivate::~UiPluginsManagerPrivate (
    this=0x7fffe0b2e980 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>, 
    __in_chrg=<optimized out>) at /usr/src/debug/kaccounts-integration-16.12.0/src/uipluginsmanager.cpp:57
#27 0x00007fffe091a6a9 in (anonymous namespace)::Q_QGS_s_instance::Holder::~Holder (this=<optimized out>, 
    __in_chrg=<optimized out>) at /usr/src/debug/kaccounts-integration-16.12.0/src/uipluginsmanager.cpp:48
#28 0x00007ffff78651a0 in __run_exit_handlers () from /lib64/libc.so.6
#29 0x00007ffff78651fa in exit () from /lib64/libc.so.6
#30 0x00007ffff784e2f8 in __libc_start_main () from /lib64/libc.so.6
#31 0x000055555555485a in _start ()
----