[kde-freebsd] Nepomukservicestub and redland soprano backend
Mel Flynn
mel.flynn+fbsd.kde at mailing.thruhere.net
Sat Jun 20 19:24:16 CEST 2009
hi,
while debugging/fixing the nepomukservicestub crash that like always happens,
I found it's main cause is badly chosen defaults by the port system for
soprano.
Basically, we provide the user with a not working strigi service, as per
nepomuk/services/strigi/strigiservice.cpp:
52 // Using Strigi with the redland backend is torture.
53 // Thus we simply fail initialization if it is used
54 // ==============================================================
55 if ( org::kde::nepomuk::Storage( "org.kde.NepomukStorage",
56 "/nepomukstorage",
57 QDBusConnection::sessionBus() )
58 .usedSopranoBackend().value() != QString::fromLatin1(
"redland" ) ) {
This is also the cause of the following crash:
(gdb) bt
#0 0x281467a6 in QThread::d_func (this=0xa5a5a5a5) at qthread.h:125
#1 0x281457ae in QThread::isRunning (this=0xa5a5a5a5) at
thread/qthread.cpp:403
#2 0x2b475175 in Nepomuk::IndexScheduler::stop (this=0xa5a5a5a5)
at /stable/usr/obj/usr/ports/x11/kdebase4-runtime/work/kdebase-
runtime-4.2.4/nepomuk/services/strigi/indexscheduler.cpp:150
#3 0x2b470937 in ~StrigiService (this=0x2b52f2c0)
at /stable/usr/obj/usr/ports/x11/kdebase4-runtime/work/kdebase-
runtime-4.2.4/nepomuk/services/strigi/strigiservice.cpp:90
#4 0x28253414 in QObjectPrivate::deleteChildren (this=0x2ada5dd0)
at kernel/qobject.cpp:1875
#5 0x2825a387 in ~QObject (this=0x2ada2f40) at kernel/qobject.cpp:884
#6 0x0804c58c in ~ServiceControl (this=0x2ada2f40)
at /stable/usr/obj/usr/ports/x11/kdebase4-runtime/work/kdebase-
runtime-4.2.4/nepomuk/servicestub/servicecontrol.cpp:39
#7 0x28253414 in QObjectPrivate::deleteChildren (this=0x2ad57180)
at kernel/qobject.cpp:1875
#8 0x2825a387 in ~QObject (this=0xbfbfe78c) at kernel/qobject.cpp:884
#9 0x2824594c in ~QCoreApplication (this=0xbfbfe78c) at
kernel/qcoreapplication.cpp:516
#10 0x285c8816 in ~QApplication (this=0xbfbfe78c) at
kernel/qapplication.cpp:1044
#11 0x0804b3ac in main (argc=Cannot access memory at address 0xa5a5a5a5
)
at /stable/usr/obj/usr/ports/x11/kdebase4-runtime/work/kdebase-
runtime-4.2.4/nepomuk/servicestub/main.cpp:149
(gdb) frame 3
#3 0x2b470937 in ~StrigiService (this=0x2b52f2c0)
at /stable/usr/obj/usr/ports/x11/kdebase4-runtime/work/kdebase-
runtime-4.2.4/nepomuk/services/strigi/strigiservice.cpp:90
90 m_indexScheduler->stop();
(gdb) print *this
$9 = {<Nepomuk::Service> = {<QObject> = {_vptr$QObject = 0x2b4877e8,
static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x282dbdc0
"QObject",
data = 0x282dbe40, extradata = 0x0}}, d_ptr = 0x2b530150,
static staticQtMetaObject = {d = {superdata = 0x0, stringdata =
0x282e5260 "Qt",
data = 0x282e6f00, extradata = 0x0}}}, static staticMetaObject = {d
= {
superdata = 0x804ee18, stringdata = 0x2948a9c0 "Nepomuk::Service",
data = 0x2948a9e0, extradata = 0x0}}, d = 0x2ad072b0}, static
staticMetaObject = {
d = {superdata = 0x804ed98, stringdata = 0x2b483fe0
"Nepomuk::StrigiService",
data = 0x2b4840c0, extradata = 0x0}}, m_indexManager = 0xa5a5a5a5,
m_indexScheduler = 0xa5a5a5a5}
(gdb) print *this->m_indexManager
Cannot access memory at address 0xa5a5a5a5
I don't know what other storage backends beside redland and the java one are
available for soprano, but I think we should not make redland the default.
I'm currently rebuilding kdebase4-runtime with the attached patch applied, and
am fairly confident it will fix the crash. I chose not to call isInitialized()
in the destructor as there may be other cases where m_indexManager is checked
rather then checking for successful initialization, plus it seemed cleaner to
me to call setServiceInitialized at the end of the constructor so that any
logic above it can fail at will.
--
Mel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-nepomuk::services::strigi::strigiservice.cpp
Type: text/x-c++src
Size: 927 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-freebsd/attachments/20090620/d829ce78/attachment.cpp
More information about the kde-freebsd
mailing list