<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/107531/">http://git.reviewboard.kde.org/r/107531/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On December 3rd, 2012, 4:36 a.m., <b>Simeon Bird</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This is an amazingly good idea. 
The simpler this bit of code is, the more chance we have to debug some of the crazy crashes we're getting!</pre>
 </blockquote>




 <p>On December 4th, 2012, 4:49 a.m., <b>Simeon Bird</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This should fix 305312 as well, right?</pre>
 </blockquote>





 <p>On December 4th, 2012, 7:02 a.m., <b>Vishesh Handa</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I'm not sure. 

The LocalSocketClient is still getting deleted when the MainModel is deleted, which is what seems to be crashing in this bug report.</pre>
 </blockquote>





 <p>On December 5th, 2012, 2:29 a.m., <b>Simeon Bird</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">hmm, it's a question. If the problem is that the LocalSocketClient is being deleted before the MainModel, and then deleted again, then this would fix it. 

On the other hand, if LocalSocketClient is still being used somehow after deletion by another thread, I guess it would not. 
I'll take a look at some point...
</pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Another solution that occurred to me was to not have the Nepomuk::MainModel as a static member. We could make it a child of the ResourceManager. I think the crash might be cause the MainModel is destroyed before the ResourceManager, though the ResourceManager doesn't access the main model when in its destructor.

Either way, it'll be good to reduce the number of static variables.</pre>
<br />








<p>- Vishesh</p>


<br />
<p>On November 30th, 2012, 1:23 p.m., Vishesh Handa wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Nepomuk, Soprano and Sebastian Trueg.</div>
<div>By Vishesh Handa.</div>


<p style="color: grey;"><i>Updated Nov. 30, 2012, 1:23 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">    LocalSocketClient: Never delete the ClientConnection
    
    The ClientConnection is not reference counted, and is passed to the the
    model and open iterators. Deleting it when has open iterators therefore
    leads to crashes.
    
    Instead, the ClientConnection is always persistent. Intead we provide
    functions to allow users of the ClientConnection to connect and
    disconnect.
    
    Also removed the concept of newConnection() from the ClientConnection.
    It no longer spawns a new socket for each thread, so there is no point
    of it existing. This new design is a lot simpler.
</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Yup. Everything works fine.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>client/clientconnection.h <span style="color: grey">(bfb3d4d)</span></li>

 <li>client/clientconnection.cpp <span style="color: grey">(febd008)</span></li>

 <li>client/localsocketclient.cpp <span style="color: grey">(f3579ff)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/107531/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>