<div dir="ltr"><div>Hey Simeon<br><br>I debugged the issue and figured it out. It was bug in Soprano. Could you possibly test it?<br><br>commit cb1ba2cb833940e00de29790284bf017938a7a09<br>Author: Vishesh Handa <<a href="mailto:me@vhanda.in">me@vhanda.in</a>><br>
Date:   Fri May 10 20:34:38 2013 +0530<br><br>    ServerCore: Avoid using qDeleteAll for the connections<br>    <br>    Each delete operation modifies the d->connections list. Therefore we<br>    cannot use qDeleteAll as qDeleteAll internally uses iterators.<br>
    <br>    This was never a problem before because the connections were never<br>    actually deleted because of a bug fixed by 5acc205e25e<br><br>diff --git a/server/servercore.cpp b/server/servercore.cpp<br>index fc4d462..1ef09f9 100644<br>
--- a/server/servercore.cpp<br>+++ b/server/servercore.cpp<br>@@ -73,7 +73,10 @@ Soprano::Server::ServerCore::~ServerCore()<br> #ifdef BUILD_DBUS_SUPPORT<br>     delete d->dbusController;<br> #endif<br>-    qDeleteAll( d->connections );<br>
+    // We avoid using qDeleteAll because d->connections is modified by each delete operation<br>+    foreach(const Soprano::Server::ServerConnection* con, d->connections) {<br>+        delete con;<br>+    }<br>     qDeleteAll( d->models );<br>
     delete d->modelPool;<br>     delete d;<br>@@ -181,7 +184,11 @@ bool Soprano::Server::ServerCore::listen( quint16 port )<br> <br> void Soprano::Server::ServerCore::stop()<br> {<br>-    qDeleteAll( d->connections );<br>
+    qDebug() << "Stopping and deleting";<br>+    // We avoid using qDeleteAll because d->connections is modified by each delete operation<br>+    foreach(const Soprano::Server::ServerConnection* con, d->connections) {<br>
+        delete con;<br>+    }<br>     qDeleteAll( d->models );<br> <br>     delete d->tcpServer;<br><br><br></div>I still haven't pushed it. It fixes the crash for me. Once you confirm, I'll release Soprano 2.9.2 with this patch.<br>
<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 9, 2013 at 9:28 AM, Simeon Bird <span dir="ltr"><<a href="mailto:bladud@gmail.com" target="_blank">bladud@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">>> We could just revert that commit (which is only needed for master) and<br>
>> re-release soprano 2.9.2, I suppose. And then re-release another<br>
>> soprano version with the commit when 4.11 is released.<br>
><br>
><br>
> My bad. I shouldn't have put that patch in Soprano 2.9.1. I was hoping to<br>
> only have to do the release once for the next six months since I do not see<br>
> any other changes that will be required in Soprano for 4.11<br>
><br>
> I think the only possible solution is to release a new Soprano version<br>
> (2.9.2?) with the reverted patch. Though maybe KDE/4.10 would be the correct<br>
> place to fix this .. hmm.<br>
<br>
</div>Yeah, 2.9.2 with the revert sounds good. Thinking about it, any<br>
KDE/4.10 fix would be a hack - plus it would have to wait a full month<br>
and would only be in use for one minor version, so it doesn't seem<br>
worth the effort<br>
<span class="HOEnZb"><font color="#888888"><br>
Simeon<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><span style="color:rgb(192,192,192)">Vishesh Handa</span><br>
</div>