[Kde-pim] Baloo search plugin crashes due to missing KGlobal::locale() (I guess?)

Christian Mollekopf chrigi_1 at fastmail.fm
Thu Jan 23 11:12:02 GMT 2014


On Wednesday 22 January 2014 23.21:59 Christian Mollekopf wrote:
> Hey,
> 
> I tried whipping up an akonadi search plugin for baloo, but it unfortunately
> crashes:
> 
> akonadiserver(10607)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying
> to open ksycoca from "/var/tmp/kdesycoca-custom"
> KGlobal::locale() must be called from the main thread before using i18n() in
> threads. KApplication takes care of this. If not using KApplication, call
> KGlobal::locale() during initialization.
> "[
> 0: akonadiserver(_Z11akBacktracev+0x36) [0x4b1f12]
> 1: akonadiserver() [0x4b2178]
> 2: /lib64/libc.so.6() [0x33cea35a60]
> 3: /lib64/libc.so.6(gsignal+0x39) [0x33cea359e9]
> 4: /lib64/libc.so.6(abort+0x148) [0x33cea370f8]
> 5: /lib64/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+0x64)
> [0x33d8270904]
> 6: /lib64/libQtCore.so.4() [0x33d8270a89]
> 7: /lib64/libQtCore.so.4(_Z6qFatalPKcz+0x94) [0x33d8271294]
> 8: /lib64/libkdecore.so.5(_ZN7KGlobal6localeEv+0x178) [0x3320b4c848]
> 9: /lib64/libkdecore.so.5(_ZN14KPluginFactory17setupTranslationsEv+0x38)
> [0x3320c0d688]
> 10:
> /lib64/libkdecore.so.5(_ZN14KPluginFactory6createEPKcP7QWidgetP7QObjectRK5QL
> istI8QVariantERK7QString+0x488) [0x3320c0e828]
> 11:
> /opt/devel/baloo/lib64/libbaloocore.so.4(_ZN14KPluginFactory6createIN5Baloo1
> 1SearchStoreEEEPT_P7QWidgetP7QObjectRK7QStringRK5QListI8QVariantE +0x5c)
> [0x7ff98416fe28]
> 12:
> /opt/devel/baloo/lib64/libbaloocore.so.4(_ZNK8KService14createInstanceIN5Bal
> oo11SearchStoreEEEPT_P7QWidgetP7QObjectRK5QListI8QVariantEP7QStri ng+0xae)
> [0x7ff98416fa40]
> 13:
> /opt/devel/baloo/lib64/libbaloocore.so.4(_ZNK8KService14createInstanceIN5Bal
> oo11SearchStoreEEEPT_P7QObjectRK5QListI8QVariantEP7QString+0x38)
> [0x7ff98416f7f0]
> 14:
> /opt/devel/baloo/lib64/libbaloocore.so.4(_ZN5Baloo11SearchStore12searchStore
> sEv+0x178) [0x7ff98416ed02]
> 15: /opt/devel/baloo/lib64/libbaloocore.so.4(_ZN5Baloo5Query4execEv+0xe0)
> [0x7ff9841745ea]
> 16:
> /opt/devel/baloo/lib64/kde4/plugins/akonadi_baloo_searchplugin.so(+0x1f3d)
> [0x7ff984383f3d]
> 17: akonadiserver(_ZN7Akonadi19PluginSearchRequest4execEv+0x262) [0x4e99b2]
> 
> It seems the plugin crashes in SearchStore::searchStores() because
> KPluginFactory tries to setupTranslations, and KGlobal::locale() has never
> been called. Since the akonadi server is not a KApplication, I'm unsure how
> to fix this. Ideas?

Since we don't have any reasonable way to call KGlobal::local() from the 
akonadi main thread (the module is loaded in a separate thread, and akonadi 
doesn't depend on kdelibs), the best possibility I see is not using KService 
in Baloo (and instead just use a QPluginLoader based plugin system).

Vishesh, what do you think?

Cheers,
Christian

_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list