Bug 231546 - nepomukservicestub crashes with SIGSEGV on startup [Soprano::Plugin::pluginName, Nepomuk::Repository::usedSopranoBackend, Nepomuk::Storage::usedSopranoBackend]
Summary: nepomukservicestub crashes with SIGSEGV on startup [Soprano::Plugin::pluginNa...
Status: RESOLVED FIXED
Alias: None
Product: nepomuk
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR grave
Target Milestone: ---
Assignee: Sebastian Trueg
URL:
Keywords:
: 235757 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-03-21 14:35 UTC by Jonathan Thomas
Modified: 2011-01-06 19:13 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Thomas 2010-03-21 14:35:03 UTC
Version:            (using KDE 4.4.1)
OS:                Linux
Installed from:    Ubuntu Packages

I get this crash at almost every start of KDE. I'm using Soprano 2.4.0.1 and the Virtuoso 6.1.

It's also been reported at https://launchpad.net/bugs/517962

.
Thread 1 (process 20586):
#0  Soprano::Plugin::pluginName (this=0x0) at ../../soprano/plugin.cpp:47
No locals.
#1  0x00007f0b1aa3e5fd in Nepomuk::Repository::usedSopranoBackend (
    this=<value optimized out>)
    at ../../../../nepomuk/services/storage/repository.cpp:308
No locals.
#2  0x00007f0b1aa3c85e in Nepomuk::Storage::usedSopranoBackend (
    this=0x1b22340) at ../../../../nepomuk/services/storage/storage.cpp:79
No locals.
#3  0x00007f0b1aa3cc4f in Nepomuk::Storage::qt_metacall (this=0x1b22340, 
    _c=QMetaObject::InvokeMetaMethod, _id=28458208, _a=0x7fff4fc53010)
    at ./storage.moc:78
	_r = {static null = {<No data fields>}, static shared_null = {ref = {
      _q_value = 2819}, alloc = 0, size = 0, data = 0x7f0b262cb87a, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 44}, 
    alloc = 0, size = 0, data = 0x7f0b262cb89a, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {
      0}}, d = 0x1aa0c20, static codecForCStrings = 0x0}
#4  0x00007f0b259d8856 in QDBusConnectionPrivate::deliverCall (
    this=<value optimized out>, object=<value optimized out>, 
    msg=<value optimized out>, metaTypes=@0x7fff4fc53108, 
    slotIdx=<value optimized out>) at qdbusintegrator.cpp:904
	context = {connection = {static staticMetaObject = {d = {
        superdata = 0x0, stringdata = 0x7f0b25a19540 "QDBusConnection", 
        data = 0x7f0b25a19720, extradata = 0x0}}, d = 0x1a98e90}, 
  message = @0x1aa0b80}
	old = (QDBusContextPrivate *) 0x0
	ptr = {o = 0x1b22340}
	params = {a = 10, s = 1, ptr = 0x7fff4fc53010, {
    array = "\000 �\001", '\0' <repeats 12 times>, "�\000��\177\000\000\200\r�\001\000\000\000\000�\221�\001\000\000\000\0006y�77\000\000\200\r�\001\000\000\000\000�1��\177\000\000�\221�\001\000\000\000\000}�$\v\177\000\000�\221�\001\000\000\000", q_for_alignment_1 = 29040640, 
    q_for_alignment_2 = 1.4347982557243138e-316}}
	i = <value optimized out>
	outputArgs = {{p = {static shared_null = {ref = {_q_value = 506}, 
        alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
      d = 0x1a42cc0}, d = 0x1a42cc0}}
	fail = true
	auxParameters = {{p = {static shared_null = {ref = {_q_value = 506}, 
        alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
      d = 0x606400}, d = 0x606400}}
	pCount = 0
#5  0x00007f0b259d9b5f in QDBusConnectionPrivate::activateCall (
    this=<value optimized out>, object=0x1b22340, flags=81, msg=@0x1aa0b80)
    at qdbusintegrator.cpp:809
	mo = (const QMetaObject *) 0x7f0b0bb07884
	memberName = {static shared_null = {ref = {_q_value = 1829}, 
    alloc = 0, size = 0, data = 0x6063f8 "", array = ""}, 
  static shared_empty = {ref = {_q_value = 21}, alloc = 0, size = 0, 
    data = 0x7f0b262cb758 "", array = ""}, d = 0x1a422b0}
	slotData = {flags = 81, slotIdx = 4, metaTypes = {{p = {
        static shared_null = {ref = {_q_value = 506}, alloc = 0, begin = 0, 
          end = 0, sharable = 1, array = {0x0}}, d = 0x1a422f0}, 
      d = 0x1a422f0}}}
	cachePropertyName = "_qdbus_slotCache"
	slotCache = {hash = {<QHash<QString, QDBusSlotCache::Data>> = {{
        d = 0x1b07660, e = 0x1b07660}}, <No data fields>}}
	cacheKey = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 2819}, alloc = 0, size = 0, data = 0x7f0b262cb87a, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 44}, 
    alloc = 0, size = 0, data = 0x7f0b262cb89a, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {
      0}}, d = 0x1bd0d30, static codecForCStrings = 0x0}
	signature = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 2819}, alloc = 0, size = 0, data = 0x7f0b262cb87a, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 44}, 
    alloc = 0, size = 0, data = 0x7f0b262cb89a, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {
      0}}, d = 0x7f0b262cb880, static codecForCStrings = 0x0}
#6  0x00007f0b259da37e in QDBusConnectionPrivate::activateObject (
    this=<value optimized out>, node=<value optimized out>, msg=@0x1aa0b80, 
    pathStartPos=<value optimized out>) at qdbusintegrator.cpp:1383
	interfaceFound = 176
	connector = (class QDBusAdaptorConnector *) 0x1b24870
#7  0x00007f0b259da8d8 in QDBusActivateObjectEvent::placeMetaCall (
    this=0x1aa0b10) at qdbusintegrator.cpp:1477
No locals.
#8  0x00007f0b25fc7999 in QObject::event (this=0x1b22340, e=0x1aa0b10)
    at kernel/qobject.cpp:1248
	currentSender = {sender = 0x1a98e90, signal = -1, ref = 1}
	previousSender = (QObjectPrivate::Sender * const) 0x0
#9  0x00007f0b247a907c in QApplicationPrivate::notify_helper (this=0x19ebc60, 
    receiver=0x1b22340, e=0x1aa0b10) at kernel/qapplication.cpp:4298
	consumed = <value optimized out>
#10 0x00007f0b247af66b in QApplication::notify (this=0x7fff4fc53ea0, 
    receiver=0x1b22340, e=0x1aa0b10) at kernel/qapplication.cpp:4181
	res = <value optimized out>
#11 0x00007f0b25fb7c5c in QCoreApplication::notifyInternal (
    this=0x7fff4fc53ea0, receiver=0x1b22340, event=0x1aa0b10)
    at kernel/qcoreapplication.cpp:704
	result = false
	cbdata = {0x1b22340, 0x1aa0b10, 0x7fff4fc5398f}
	threadData = (QThreadData *) 0x19d6080
	returnValue = <value optimized out>
#12 0x00007f0b25fba3d7 in QCoreApplicationPrivate::sendPostedEvents (
    receiver=0x0, event_type=<value optimized out>, data=0x19d6080)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
	pe = (const QPostEvent &) @0x1bb0090: {receiver = 0x1b22340, 
  event = 0x0, priority = 0}
	e = (class QEvent *) 0x1aa0b10
	r = (class QObject *) 0x1b22340
	locker = {{mtx = 0x19d60c0, val = 27091136}}
	startOffset = 0
	i = (int &) @0x19d60b4: 2
#13 0x00007f0b25fe1603 in postEventSourceDispatch (s=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
No locals.
#14 0x00007f0b234a67c0 in g_main_context_dispatch ()
   from /lib/libglib-2.0.so.0
No symbol table info available.
#15 0x00007f0b234aa5f8 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#16 0x00007f0b234aa7dc in g_main_context_iteration ()
   from /lib/libglib-2.0.so.0
No symbol table info available.
#17 0x00007f0b25fe1143 in QEventDispatcherGlib::processEvents (
    this=0x19d5bc0, flags=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:412
	d = (QEventDispatcherGlibPrivate * const) 0x19ebee0
	canWait = true
	result = <value optimized out>
#18 0x00007f0b2485888e in QGuiEventDispatcherGlib::processEvents (
    this=0x7fff4fc52da0, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:204
	d = (QGuiEventDispatcherGlibPrivate * const) 0x19ebee0
	returnValue = 224
#19 0x00007f0b25fb6582 in QEventLoop::processEvents (
    this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:149
	d = (QEventLoopPrivate * const) 0x1a72b40
#20 0x00007f0b25fb695c in QEventLoop::exec (this=0x7fff4fc53c80, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
)
    at kernel/qeventloop.cpp:201
	d = (QEventLoopPrivate * const) 0x1a72b40
	app = (class QCoreApplication *) 0x7fff4fc53ea0
#21 0x00007f0b25fba69b in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:981
	threadData = (QThreadData *) 0x19d6080
	eventLoop = {<QObject> = {_vptr.QObject = 0x7f0b262c9910, 
    static staticMetaObject = {d = {superdata = 0x0, 
        stringdata = 0x7f0b2605df60 "QObject", data = 0x7f0b2605e000, 
        extradata = 0x7f0b262c1180}}, d_ptr = {d = 0x1a72b40}, 
    static staticQtMetaObject = {d = {superdata = 0x0, 
        stringdata = 0x7f0b26066be0 "Qt", data = 0x7f0b2606a1e0, 
        extradata = 0x0}}}, static staticMetaObject = {d = {
      superdata = 0x606300, stringdata = 0x7f0b2606fca0 "QEventLoop", 
      data = 0x7f0b2606fcc0, extradata = 0x0}}}
	returnCode = -1
#22 0x0000000000403adc in main (argc=2, argv=<value optimized out>)
    at ../../../nepomuk/servicestub/main.cpp:152
	aboutData = {d = 0x19d7650}
	app = {<QCoreApplication> = {<QObject> = {
      _vptr.QObject = 0x7f0b25246630, static staticMetaObject = {d = {
          superdata = 0x0, stringdata = 0x7f0b2605df60 "QObject", 
          data = 0x7f0b2605e000, extradata = 0x7f0b262c1180}}, d_ptr = {
        d = 0x19ebc60}, static staticQtMetaObject = {d = {superdata = 0x0, 
          stringdata = 0x7f0b26066be0 "Qt", data = 0x7f0b2606a1e0, 
          extradata = 0x0}}}, static staticMetaObject = {d = {
        superdata = 0x606300, stringdata = 0x7f0b2606fd40 "QCoreApplication", 
        data = 0x7f0b2606fde0, extradata = 0x0}}, 
    static self = 0x7fff4fc53ea0}, static staticMetaObject = {d = {
      superdata = 0x7f0b262c99a0, stringdata = 0x7f0b24e4dce0 "QApplication", 
      data = 0x7f0b24e4df20, extradata = 0x0}}}
	serviceName = {static null = {<No data fields>}, 
  static shared_null = {ref = {_q_value = 2819}, alloc = 0, size = 0, 
    data = 0x7f0b262cb87a, clean = 0, simpletext = 0, righttoleft = 0, 
    asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  static shared_empty = {ref = {_q_value = 44}, alloc = 0, size = 0, 
    data = 0x7f0b262cb89a, clean = 0, simpletext = 0, righttoleft = 0, 
    asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x1a2aee0, 
  static codecForCStrings = 0x0}
	compData = {_vptr.KComponentData = 0x7f0b259a49f0, d = 0x19ece90}
	dependencies = {<QList<QString>> = {{p = {static shared_null = {
          ref = {_q_value = 506}, alloc = 0, begin = 0, end = 0, 
          sharable = 1, array = {0x0}}, d = 0x606400}, 
      d = 0x606400}}, <No data fields>}
	options = {d = 0x19d8000}
	args = <value optimized out>
	s = {_vptr.QTextStream = 0x7f0b262c5f70, d_ptr = {d = 0x1a3ecb0}}
	services = {{p = {static shared_null = {ref = {_q_value = 506}, 
        alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
      d = 0x1a72220}, d = 0x1a72220}}
	service = {d = 0x1a79820}
Comment 1 Sebastian Trueg 2010-03-22 12:03:52 UTC
SVN commit 1106245 by trueg:

Do not crash if the system setup is broken and Nepomuk cannot find the Virtuoso Soprano backend.

BUG: 231546


 M  +4 -1      repository.cpp  
 M  +4 -1      storage.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1106245
Comment 2 Jonathan Thomas 2010-03-22 12:06:04 UTC
I should note that after one or two crashes, it eventually does start properly, so I don't think it's as cut-and-dry as "my setup is broke". Thanks for the fix, though.
Comment 3 Jonathan Thomas 2010-04-19 00:25:40 UTC
Still getting dupes from KDE 4.2.2, too.
Comment 4 Sebastian Trueg 2010-04-19 10:21:10 UTC
@Jonathan: could you please provide a backtrace. A duplicate is not possible as that particular piece of code cannot crash anymore - repository.cpp:308 has changed.
Comment 5 Jonathan Thomas 2010-04-19 13:19:55 UTC
Sorta. Due to the nature of this crash it isn't, as far as I can tell, possible to reproduce this outside of a startup environment. Unfortunately that means we have to rely on the Apport crash reporting service to get backtraces for these crashes (as the KDE crash handler does not). And Apport isn't always able to get backtraces with full information:

Thread 2 (Thread 8823):
#0  0xb65499c8 in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#1  0x003d0f00 in ?? ()
No symbol table info available.
#2  0x00000000 in ?? ()
No symbol table info available.
.
Thread 1 (Thread 8821):
#0  0xb60f5ca8 in Soprano::Plugin::pluginName() const ()
   from /usr/lib/libsoprano.so.4
No symbol table info available.
#1  0xb4f624b0 in ?? () from /usr/lib/kde4/nepomukstorage.so
No symbol table info available.
#2  0xb4f5ff0e in ?? () from /usr/lib/kde4/nepomukstorage.so
No symbol table info available.
#3  0xb4f603fa in ?? () from /usr/lib/kde4/nepomukstorage.so
No symbol table info available.
#4  0xb7447b34 in ?? () from /usr/lib/libQtDBus.so.4
No symbol table info available.
#5  0xb7448ddf in ?? () from /usr/lib/libQtDBus.so.4
No symbol table info available.
#6  0xb74495ac in ?? () from /usr/lib/libQtDBus.so.4
No symbol table info available.
#7  0xb7449b1a in ?? () from /usr/lib/libQtDBus.so.4
No symbol table info available.
#8  0xb76513fe in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#9  0xb68024dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
No symbol table info available.
#10 0xb680905e in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
No symbol table info available.
#11 0xb7640a3b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQtCore.so.4
No symbol table info available.
#12 0xb7643473 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#13 0xb76435dd in QCoreApplication::sendPostedEvents(QObject*, int) ()
   from /usr/lib/libQtCore.so.4
No symbol table info available.
#14 0xb766cadf in ?? () from /usr/lib/libQtCore.so.4
No symbol table info available.
#15 0xb63c55e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
No symbol table info available.
#16 0xb63c92d8 in ?? () from /lib/libglib-2.0.so.0
No symbol table info available.
#17 0xb63c94b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
No symbol table info available.
#18 0xb766c5d5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#19 0xb68c2135 in ?? () from /usr/lib/libQtGui.so.4
No symbol table info available.
#20 0xb763f059 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
No symbol table info available.
#21 0xb763f4aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQtCore.so.4
No symbol table info available.
#22 0xb764369f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
No symbol table info available.
#23 0xb6802577 in QApplication::exec() () from /usr/lib/libQtGui.so.4
No symbol table info available.
#24 0x0804b0a9 in _start ()
No symbol table info available.
Comment 6 Jonathan Thomas 2010-04-30 15:59:49 UTC
*** Bug 235757 has been marked as a duplicate of this bug. ***
Comment 7 Jonathan Thomas 2010-05-06 22:21:13 UTC
Bug 235757 (from a fedora system, so not a Kubuntu-specific bug) has a better backtrace:

[New Thread 9275]
Core was generated by `/usr/bin/nepomukservicestub nepomukstorage'.
Program terminated with signal 11, Segmentation fault.
#0  QString (this=0x1d5a0a0) at /usr/include/QtCore/qstring.h:714
714    inline QString::QString(const QString &other) : d(other.d)

Thread 2 (Thread 9275):
#0  clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:84
No locals.
#1  0x0000003acac06980 in ?? () at allocatestack.c:743
   from /lib64/libpthread.so.0
No symbol table info available.
#2  0x00007f07c8011710 in ?? ()
No symbol table info available.
#3  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 9273):
#0  QString (this=0x1d5a0a0) at /usr/include/QtCore/qstring.h:714
No locals.
#1  Soprano::Plugin::pluginName (this=0x1d5a0a0)
    at /usr/src/debug/soprano-2.4.1/soprano/plugin.cpp:47
No locals.
#2  0x00007f07ca6c3d62 in Nepomuk::Repository::usedSopranoBackend (
    this=<value optimized out>)
    at
/usr/src/debug/kdebase-runtime-4.4.2/nepomuk/services/storage/repository.cpp:309
No locals.
#3  0x00007f07ca6c236d in Nepomuk::Storage::usedSopranoBackend (this=
    0x1d524a0)
    at
/usr/src/debug/kdebase-runtime-4.4.2/nepomuk/services/storage/storage.cpp:80
        rep = 0x1d524a0
#4  0x00007f07ca6c25df in Nepomuk::Storage::qt_metacall (this=0x1d6bbb0, _c=
    InvokeMetaMethod, _id=0, _a=0x7fff18fbc2d0)
    at
/usr/src/debug/kdebase-runtime-4.4.2/x86_64-redhat-linux-gnu/nepomuk/services/storage/storage.moc:78
        _r = {static null = {<No data fields>}, static shared_null = {ref = {
              _q_value = 2534}, alloc = 0, size = 0, data = 0x36ef263e7a, 
            clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, 
            capacity = 0, reserved = 0, array = {0}}, static shared_empty = {
            ref = {_q_value = 40}, alloc = 0, size = 0, data = 0x36ef263e9a, 
            clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, 
            capacity = 0, reserved = 0, array = {0}}, d = 0x1d3f480, 
          static codecForCStrings = 0x0}
#5  0x00000036ef821c26 in QDBusConnectionPrivate::deliverCall (
    this=<value optimized out>, object=<value optimized out>, 
    msg=<value optimized out>, metaTypes=..., slotIdx=<value optimized out>)
    at qdbusintegrator.cpp:904
        context = {connection = {static staticMetaObject = {d = {superdata = 
    0x0, stringdata = 0x36ef85d080 "QDBusConnection", data = 0x36ef85d260, 
                extradata = 0x0}}, d = 0x1d00fd0}, message = @0x1d40f70}
        old = 0x0
        ptr = {o = 0x1d6bbb0}
        params = {a = 10, s = 1, ptr = 0x7fff18fbc2d0, {array = 
    "\020\016\326\001", '\000' <repeats 12 times>"\252,
\000\374\030\377\177\000\000\200\303\325\001\000\000\000\000\220\244\325\001\000\000\000\000F@\367\356\066\000\000\000\200\303\325\001\000\000\000\000`\304\373\030\377\177\000\000\220\244\325\001\000\000\000\000=N~\360\066\000\000\000\220\244\325\001\000\000\000",
q_for_alignment_1 = 30805520, q_for_alignment_2 = 
    1.5219949134275437e-316}}
        i = <value optimized out>
        outputArgs = {{p = {static shared_null = {ref = {_q_value = 1}, 
                alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
              d = 0x1d56cc0}, d = 0x1d56cc0}}
        fail = <value optimized out>
        auxParameters = {{p = {static shared_null = {ref = {_q_value = 1}, 
                alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
              d = 0x605940}, d = 0x605940}}
        takesMessage = <value optimized out>
        null = 0x0
#6  0x00000036ef822e3f in QDBusConnectionPrivate::activateCall (
    this=<value optimized out>, object=0x1d6bbb0, flags=81, msg=...)
    at qdbusintegrator.cpp:809
        mo = <value optimized out>
        memberName = {static shared_null = {ref = {_q_value = 1}, alloc = 0, 
            size = 0, data = 0x605938 "", array = ""}, static shared_empty = {
            ref = {_q_value = 11}, alloc = 0, size = 0, data = 
    0x36ef263d58 "", array = ""}, d = 0x1d61e70}
        slotData = {flags = 81, slotIdx = 4, metaTypes = {{p = {
                static shared_null = {ref = {_q_value = 1}, alloc = 0, 
                  begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 
    0x1d3e260}, d = 0x1d3e260}}}
        cachePropertyName = "_qdbus_slotCache"
        slotCache = {hash = {<QHash<QString, QDBusSlotCache::Data>> = {{d = 
    0x1d424a0, e = 0x1d424a0}}, <No data fields>}}
        cacheKey = {static null = {<No data fields>}, static shared_null = {
            ref = {_q_value = 2534}, alloc = 0, size = 0, data = 
    0x36ef263e7a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, 
            capacity = 0, reserved = 0, array = {0}}, static shared_empty = {
            ref = {_q_value = 40}, alloc = 0, size = 0, data = 0x36ef263e9a, 
            clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, 
            capacity = 0, reserved = 0, array = {0}}, d = 0x1d56c00, 
          static codecForCStrings = 0x0}
        signature = {static null = {<No data fields>}, static shared_null = {
            ref = {_q_value = 2534}, alloc = 0, size = 0, data = 
    0x36ef263e7a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, 
            capacity = 0, reserved = 0, array = {0}}, static shared_empty = {
            ref = {_q_value = 40}, alloc = 0, size = 0, data = 0x36ef263e9a, 
            clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, 
            capacity = 0, reserved = 0, array = {0}}, d = 0x36ef263e80, 
          static codecForCStrings = 0x0}
#7  0x00000036ef82364e in QDBusConnectionPrivate::activateObject (
    this=<value optimized out>, node=<value optimized out>, msg=..., 
    pathStartPos=<value optimized out>) at qdbusintegrator.cpp:1383
        interfaceFound = <value optimized out>
        connector = <value optimized out>
#8  0x00000036ef823ba8 in QDBusActivateObjectEvent::placeMetaCall (this=
    0x1d40f00) at qdbusintegrator.cpp:1477
        that = 0x7f07ca6c6b1a
#9  0x00000036eef66921 in QObject::event (this=0x1d6bbb0, e=0x1d40f00)
    at kernel/qobject.cpp:1248
        mce = 0x1d40f00
        currentSender = {sender = 0x1d00fd0, signal = -1, ref = 1}
        previousSender = 0x0
#10 0x00000036f07aa9dc in QApplicationPrivate::notify_helper (this=0x1c9b4a0, 
    receiver=0x1d6bbb0, e=0x1d40f00) at kernel/qapplication.cpp:4300
        consumed = <value optimized out>
#11 0x00000036f07b0aab in QApplication::notify (this=<value optimized out>, 
    receiver=0x1d6bbb0, e=0x1d40f00) at kernel/qapplication.cpp:4183
        d = 0x7fff18fbc070
        res = <value optimized out>
#12 0x00000036eef5774c in QCoreApplication::notifyInternal (this=
    0x7fff18fbd160, receiver=0x1d6bbb0, event=0x1d40f00)
    at kernel/qcoreapplication.cpp:704
        threadData = 0x1c85850
        returnValue = <value optimized out>
        result = false
        cbdata = {0x1d6bbb0, 0x1d40f00, 0x7fff18fbcc4f}
        d = <value optimized out>
#13 0x00000036eef58497 in sendEvent (receiver=0x0, 
    event_type=<value optimized out>, data=0x1c85850)
    at kernel/qcoreapplication.h:215
No locals.
#14 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, 
    event_type=<value optimized out>, data=0x1c85850)
    at kernel/qcoreapplication.cpp:1345
        pe = @0x1d0da20
        e = 0x1d40f00
        r = 0x1d6bbb0
        locker = {{mtx = 0x1c85890, val = 29907088}}
        startOffset = 0
        i = @0x1c85884
#15 0x00000036eef7d523 in sendPostedEvents (s=<value optimized out>)
    at kernel/qcoreapplication.h:220
No locals.
#16 postEventSourceDispatch (s=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:276
        source = <value optimized out>
#17 0x0000003acb83923e in g_main_dispatch (context=0x1c9e120) at gmain.c:1960
        dispatch = <value optimized out>
        was_in_call = 0
        user_data = 0x0
        callback = 0
        cb_funcs = 0x0
        cb_data = <value optimized out>
        current_source_link = {data = 0x1c9f080, next = 0x0}
        source = 0x1c9f080
        current = 0x1c9d1b0
        i = <value optimized out>
#18 IA__g_main_context_dispatch (context=0x1c9e120) at gmain.c:2513
No locals.
#19 0x0000003acb83cc28 in g_main_context_iterate (context=0x1c9e120, 
    block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at gmain.c:2591
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = 4
        allocated_nfds = <value optimized out>
        fds = <value optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#20 0x0000003acb83cd4a in IA__g_main_context_iteration (context=0x1c9e120, 
    may_block=1) at gmain.c:2654
        retval = 1
#21 0x00000036eef7d063 in QEventDispatcherGlib::processEvents (this=
    0x1c84f40, flags=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:412
        d = 0x1c9b720
        canWait = <value optimized out>
#22 0x00000036f0849a4e in QGuiEventDispatcherGlib::processEvents (
    this=<value optimized out>, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:204
        d = 0x1c9b720
        returnValue = 112
#23 0x00000036eef56192 in QEventLoop::processEvents (
    this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
        d = 0x1d40270
#24 0x00000036eef5645c in QEventLoop::exec (this=0x7fff18fbcf40, flags=...)
    at kernel/qeventloop.cpp:201
        d = 0x1d40270
        app = 0x7fff18fbd160
#25 0x00000036eef58749 in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:981
        threadData = 0x1c85850
        eventLoop = {<QObject> = {_vptr.QObject = 0x36ef261f10, 
            static staticMetaObject = {d = {superdata = 0x0, stringdata = 
    0x36eeff3b00 "QObject", data = 0x36eeff3ba0, extradata = 0x36ef259780}}, 
            d_ptr = {d = 0x1d40270}, static staticQtMetaObject = {d = {
                superdata = 0x0, stringdata = 0x36eeffc780 "Qt", data = 
    0x36eefffda0, extradata = 0x0}}}, static staticMetaObject = {d = {
              superdata = 0x605840, stringdata = 0x36ef005860 "QEventLoop", 
              data = 0x36ef005880, extradata = 0x0}}}
        returnCode = -1
#26 0x00000000004037ac in main (argc=2, argv=<value optimized out>)
    at /usr/src/debug/kdebase-runtime-4.4.2/nepomuk/servicestub/main.cpp:152
        aboutData = {d = 0x1c86e60}
        app = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 
    0x36f11eefb0, static staticMetaObject = {d = {superdata = 0x0, 
                  stringdata = 0x36eeff3b00 "QObject", data = 0x36eeff3ba0, 
                  extradata = 0x36ef259780}}, d_ptr = {d = 0x1c9b4a0}, 
              static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 
    0x36eeffc780 "Qt", data = 0x36eefffda0, extradata = 0x0}}}, 
            static staticMetaObject = {d = {superdata = 0x605840, 
                stringdata = 0x36ef005900 "QCoreApplication", data = 
    0x36ef0059a0, extradata = 0x0}}, static self = 0x7fff18fbd160}, 
          static staticMetaObject = {d = {superdata = 0x36ef261fa0, 
              stringdata = 0x36f0de98a0 "QApplication", data = 0x36f0de9ae0, 
              extradata = 0x0}}}
        serviceName = {static null = {<No data fields>}, 
          static shared_null = {ref = {_q_value = 2534}, alloc = 0, size = 0, 
            data = 0x36ef263e7a, clean = 0, simpletext = 0, righttoleft = 0, 
            asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
          static shared_empty = {ref = {_q_value = 40}, alloc = 0, size = 0, 
            data = 0x36ef263e9a, clean = 0, simpletext = 0, righttoleft = 0, 
            asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 
    0x1ceb150, static codecForCStrings = 0x0}
        compData = {_vptr.KComponentData = 0x36f0462010, d = 0x1cec9a0}
        dependencies = {<QList<QString>> = {{p = {static shared_null = {ref = 
    {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {
    0x0}}, d = 0x605940}, d = 0x605940}}, <No data fields>}
        control = 0x1d3e020
        options = {d = 0x1c87810}
        args = 0x1d3e020
        s = {_vptr.QTextStream = 0x36ef25e570, d_ptr = {d = 0x1cfbe20}}
        services = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 
    0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x1d41720}, d = 
    0x1d41720}}
        service = {d = 0x1d30780}
Comment 8 Sebastian Trueg 2010-05-07 10:14:16 UTC
SVN commit 1123884 by trueg:

Properly initialize all member variables.
This fixes a crash when the service is asked for the used backend before being initialized.
Will backport to 4.4, too.

BUG: 231546


 M  +3 -1      repository.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1123884
Comment 9 Will Stephenson 2010-08-07 15:33:10 UTC
I am still getting the following crash with 4.4 branch 

Nepomuk comes up correctly, but nepomukstorage crashes as soon as Akonadi starts and (a guess) its nepomuk-contact-feeder tries to check if the right backend is present.

Note that Soprano::Plugin in #2 is no longer 0x0
#0  QString (this=0xb4e0dcac) at /usr/include/QtCore/qstring.h:715
#1  Soprano::Plugin::pluginName (this=0xb4e0dcac) at /usr/src/debug/soprano-2.4.2/soprano/plugin.cpp:47
#2  0xb55a528e in Nepomuk::Repository::usedSopranoBackend (this=0x813ae78)
    at /usr/src/debug/kdebase-runtime-4.4.4/nepomuk/services/storage/repository.cpp:312
#3  0xb55a36c4 in Nepomuk::Storage::usedSopranoBackend (this=0x812dfe0)
    at /usr/src/debug/kdebase-runtime-4.4.4/nepomuk/services/storage/storage.cpp:80
#4  0xb55a3752 in Nepomuk::Storage::qt_metacall (this=0x812dfe0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbfa3903c)
    at /usr/src/debug/kdebase-runtime-4.4.4/build/nepomuk/services/storage/storage.moc:78
#5  0xb7444a37 in ?? () from /usr/lib/libQtDBus.so.4
#6  0xb7446be7 in ?? () from /usr/lib/libQtDBus.so.4
#7  0xb7447378 in ?? () from /usr/lib/libQtDBus.so.4
#8  0xb7447878 in ?? () from /usr/lib/libQtDBus.so.4
#9  0xb762b93f in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#10 0xb67f0c64 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#11 0xb67f8bf7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#12 0xb7618e0e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#13 0xb761c9b4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#14 0xb761cb9c in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4
#15 0xb764483d in ?? () from /usr/lib/libQtCore.so.4
#16 0xb638bb49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#17 0xb638c350 in ?? () from /usr/lib/libglib-2.0.so.0
#18 0xb638c60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#19 0xb7644d4b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#20 0xb68a119a in ?? () from /usr/lib/libQtGui.so.4
#21 0xb761811d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#22 0xb7618319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#23 0xb761cc70 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#24 0xb67ee164 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#25 0x0804b08d in main (argc=134530024, argv=0x8121e30) at /usr/src/debug/kdebase-runtime-4.4.4/nepomuk/servicestub/main.cpp:152
Comment 10 Will Stephenson 2010-08-07 16:12:28 UTC
So 1123884 was backported to branch as 1123884 - my crash must be something different.  As I noted above, the storage process comes up (and reports isInitialized = true over the /servicecontrol interface) but m_backend must be invalid (or the whole Repository class...).  As soon as I call usedSopranoBackend() on it, or akonadi does, it bombs.  

This is killing KMail usage on openSUSE because address autocomplete can not be made to work.

What if Soprano::PluginManager::instance()->discoverBackendByName( QLatin1String( "virtuosobackend" ) is returning garbage?

Can this have anything to do with having soprano-backend-redland installed as well as -virtuoso so that the ontology memory models work?
Comment 11 Vishesh Handa 2010-08-07 16:21:30 UTC
(In reply to comment #10)
> Can this have anything to do with having soprano-backend-redland installed as
> well as -virtuoso so that the ontology memory models work?

I doubt it. Nepomuk requires both the Redland and the Virtuoso backend in order
to function properly.
Comment 12 Will Stephenson 2010-08-09 17:44:14 UTC
It turns out 4.4 branch kdebase/runtime/nepomuk code crashes with Soprano 2.4.2 unless this patch is applied:

http://websvn.kde.org/branches/work/komo/kdebase/runtime/nepomuk/services/storage/storage.cpp?r1=1106621&r2=1134070&pathrev=1134070&view=patch

Should it be added to 4.4 branch?
Comment 13 Sebastian Trueg 2011-01-06 19:13:52 UTC
Fixed in 4.6 (and maybe 4.5 already).