[Nepomuk] Can virtuoso requests be cancelled?

David Faure faure at kde.org
Mon Jul 9 14:56:16 UTC 2012


So, I have these completion queries running for 27 minutes, even after I type
another string to complete. Can virtuoso queries be cancelled while they're running?

Looking at nepomukqueryservice I see that it's doing a blocking "wait for ready
read" for 10 minutes on the soprano socket:

#0  0x00007ffff435f803 in select () from /lib64/libc.so.6
#1  0x00007ffff043d76d in Soprano::Socket::waitForReadyRead (this=0x7fffe4002fd0, timeout=600000) at /d/kde/src/4/soprano/client/socket.cpp:86
#2  0x00007ffff04437e0 in Soprano::Client::ClientConnection::iteratorNext (this=0x7fffe4003570, id=995280421) at /d/kde/src/4/soprano/client/clientconnection.cp
p:570
#3  0x00007ffff044791c in Soprano::Client::ClientQueryResultIteratorBackend::next (this=0x7fffe4003880) at /d/kde/src/4/soprano/client/clientqueryresultiterator
backend.cpp:46
#4  0x00007fffeba30edf in Soprano::Iterator<Soprano::BindingSet>::next (this=0x7fffeb80ea90) at /d/kde/inst/kde4.9/include/Soprano/../soprano/iterator.h:239
#5  0x00007fffeba30366 in Nepomuk2::Query::SearchRunnable::run (this=0x7a3140) at /d/kde/src/4/nepomuk-core/services/queryservice/searchrunnable.cpp:91
#6  0x00007ffff78e12fd in QThreadPoolThread::run (this=0x801860) at concurrent/qthreadpool.cpp:107
#7  0x00007ffff78f1f28 in QThreadPrivate::start (arg=0x801860) at thread/qthread_unix.cpp:307
#8  0x00007ffff7631f05 in start_thread () from /lib64/libpthread.so.0
#9  0x00007ffff436610d in clone () from /lib64/libc.so.6

I presume this means there's no way to cancel a running query?
Even just closing the socket might not make virtuoso realize that it should abort, right?
But even if it did, I'm not sure we want to close and reopen sockets at every keypress...

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5



More information about the Nepomuk mailing list