From kde-release-team Tue Jul 10 16:29:50 2012 From: "Vishesh Handa" Date: Tue, 10 Jul 2012 16:29:50 +0000 To: kde-release-team Subject: Re: Review Request: Fix crash in nepomuk services after a timeout Message-Id: <20120710162950.27611.21541 () vidsolbach ! de> X-MARC-Message: https://marc.info/?l=kde-release-team&m=134194938514164 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============1137053090705593241==" --===============1137053090705593241== Content-Type: multipart/alternative; boundary="===============2863559859495883837==" --===============2863559859495883837== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/105507/#review15632 ----------------------------------------------------------- Ship it! Could you please add a FIXME in the comment? Just so that it becomes more o= bvious. - Vishesh Handa On July 10, 2012, 3:57 p.m., David Faure wrote: > = > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/105507/ > ----------------------------------------------------------- > = > (Updated July 10, 2012, 3:57 p.m.) > = > = > Review request for Nepomuk and Release Team. > = > = > Description > ------- > = > Fix crash due to other threads using the model at the time it gets delete= d. No proper solution found though, with the current API. > = > = > Diffs > ----- > = > libnepomukcore/resource/nepomukmainmodel.cpp ba2626f = > = > Diff: http://git.reviewboard.kde.org/r/105507/diff/ > = > = > Testing > ------- > = > Running nepomukqueryservice in valgrind gave this: > = > "/d/kde/inst/kde4.9/bin/nepomukservicestub(19732)" Soprano: "Timeout (5)"= : "Command timed out." > =3D=3D19732=3D=3D Thread 3: > =3D=3D19732=3D=3D Invalid read of size 8 > =3D=3D19732=3D=3D at 0xC5AB6DA: QPointer::operator->() const (qpointer.h:74) > =3D=3D19732=3D=3D by 0xC5AA70A: Soprano::Client::ClientModel::executeQ= uery(QString const&, Soprano::Query::QueryLanguage, QString const&) const (= clientmodel.cpp:106) > =3D=3D19732=3D=3D by 0x68E9319: Nepomuk2::MainModel::executeQuery(QStr= ing const&, Soprano::Query::QueryLanguage, QString const&) const (nepomukma= inmodel.cpp:182) > =3D=3D19732=3D=3D by 0x12BDDEED: Nepomuk2::Query::SearchRunnable::run(= ) (searchrunnable.cpp:89) > =3D=3D19732=3D=3D by 0x4ECA2FC: QThreadPoolThread::run() (qthreadpool.= cpp:107) > =3D=3D19732=3D=3D by 0x4EDAF27: QThreadPrivate::start(void*) (qthread_= unix.cpp:307) > =3D=3D19732=3D=3D by 0x53CCF04: start_thread (in /lib64/libpthread-2.1= 4.1.so) > =3D=3D19732=3D=3D by 0x86CD10C: clone (in /lib64/libc-2.14.1.so) > =3D=3D19732=3D=3D Address 0x117af938 is 72 bytes inside a block of size = 80 free'd > =3D=3D19732=3D=3D at 0x4C28706: operator delete(void*) (vg_replace_mal= loc.c:457) > =3D=3D19732=3D=3D by 0xC5AA2ED: Soprano::Client::ClientModel::~ClientM= odel() (clientmodel.cpp:58) > =3D=3D19732=3D=3D by 0x68E8BAB: (anonymous namespace)::GlobalModelCont= ainer::init(bool) (nepomukmainmodel.cpp:82) > =3D=3D19732=3D=3D by 0x68E8E58: (anonymous namespace)::GlobalModelCont= ainer::model() (nepomukmainmodel.cpp:100) > =3D=3D19732=3D=3D by 0x68E932D: Nepomuk2::MainModel::executeQuery(QStr= ing const&, Soprano::Query::QueryLanguage, QString const&) const (nepomukma= inmodel.cpp:183) > =3D=3D19732=3D=3D by 0x12BDDEED: Nepomuk2::Query::SearchRunnable::run(= ) (searchrunnable.cpp:89) > =3D=3D19732=3D=3D by 0x4ECA2FC: QThreadPoolThread::run() (qthreadpool.= cpp:107) > =3D=3D19732=3D=3D by 0x4EDAF27: QThreadPrivate::start(void*) (qthread_= unix.cpp:307) > =3D=3D19732=3D=3D by 0x53CCF04: start_thread (in /lib64/libpthread-2.1= 4.1.so) > =3D=3D19732=3D=3D by 0x86CD10C: clone (in /lib64/libc-2.14.1.so) > =3D=3D19732=3D=3D = > = > No crash anymore after this "fix"... > = > = > Thanks, > = > David Faure > = > --===============2863559859495883837== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable
This is an automatically generated e-mail. To reply, visit: http://git.revie= wboard.kde.org/r/105507/

Ship it!

Could you =
please add a FIXME in the comment? Just so that it becomes more obvious.
 

- Vishesh


On July 10th, 2012, 3:57 p.m., David Faure wrote:

Review request for Nepomuk and Release Team.
By David Faure.

Updated July 10, 2012, 3:57 p.m.

Descripti= on

Fix crash due to other threads using the model at the time i=
t gets deleted. No proper solution found though, with the current API.

Testing <= /h1>
Running nepomukqueryservice in valgrind gave this:

"/d/kde/inst/kde4.9/bin/nepomukservicestub(19732)" Soprano: "=
;Timeout (5)": "Command timed out."
=3D=3D19732=3D=3D Thread 3:
=3D=3D19732=3D=3D Invalid read of size 8
=3D=3D19732=3D=3D    at 0xC5AB6DA: QPointer<Soprano::Client::ClientConne=
ction>::operator->() const (qpointer.h:74)
=3D=3D19732=3D=3D    by 0xC5AA70A: Soprano::Client::ClientModel::executeQue=
ry(QString const&, Soprano::Query::QueryLanguage, QString const&) c=
onst (clientmodel.cpp:106)
=3D=3D19732=3D=3D    by 0x68E9319: Nepomuk2::MainModel::executeQuery(QStrin=
g const&, Soprano::Query::QueryLanguage, QString const&) const (nep=
omukmainmodel.cpp:182)
=3D=3D19732=3D=3D    by 0x12BDDEED: Nepomuk2::Query::SearchRunnable::run() =
(searchrunnable.cpp:89)
=3D=3D19732=3D=3D    by 0x4ECA2FC: QThreadPoolThread::run() (qthreadpool.cp=
p:107)
=3D=3D19732=3D=3D    by 0x4EDAF27: QThreadPrivate::start(void*) (qthread_un=
ix.cpp:307)
=3D=3D19732=3D=3D    by 0x53CCF04: start_thread (in /lib64/libpthread-2.14.=
1.so)
=3D=3D19732=3D=3D    by 0x86CD10C: clone (in /lib64/libc-2.14.1.so)
=3D=3D19732=3D=3D  Address 0x117af938 is 72 bytes inside a block of size 80=
 free'd
=3D=3D19732=3D=3D    at 0x4C28706: operator delete(void*) (vg_replace_mallo=
c.c:457)
=3D=3D19732=3D=3D    by 0xC5AA2ED: Soprano::Client::ClientModel::~ClientMod=
el() (clientmodel.cpp:58)
=3D=3D19732=3D=3D    by 0x68E8BAB: (anonymous namespace)::GlobalModelContai=
ner::init(bool) (nepomukmainmodel.cpp:82)
=3D=3D19732=3D=3D    by 0x68E8E58: (anonymous namespace)::GlobalModelContai=
ner::model() (nepomukmainmodel.cpp:100)
=3D=3D19732=3D=3D    by 0x68E932D: Nepomuk2::MainModel::executeQuery(QStrin=
g const&, Soprano::Query::QueryLanguage, QString const&) const (nep=
omukmainmodel.cpp:183)
=3D=3D19732=3D=3D    by 0x12BDDEED: Nepomuk2::Query::SearchRunnable::run() =
(searchrunnable.cpp:89)
=3D=3D19732=3D=3D    by 0x4ECA2FC: QThreadPoolThread::run() (qthreadpool.cp=
p:107)
=3D=3D19732=3D=3D    by 0x4EDAF27: QThreadPrivate::start(void*) (qthread_un=
ix.cpp:307)
=3D=3D19732=3D=3D    by 0x53CCF04: start_thread (in /lib64/libpthread-2.14.=
1.so)
=3D=3D19732=3D=3D    by 0x86CD10C: clone (in /lib64/libc-2.14.1.so)
=3D=3D19732=3D=3D =


No crash anymore after this "fix"...

Diffs=

  • libnepomukcore/resource/nepomukmainmodel.cpp (ba2626f)

View Diff

--===============2863559859495883837==-- --===============1137053090705593241== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ release-team mailing list release-team@kde.org https://mail.kde.org/mailman/listinfo/release-team --===============1137053090705593241==--