<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/108997/">http://git.reviewboard.kde.org/r/108997/</a>
     </td>
    </tr>
   </table>
   <br />




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

<div>Review request for Nepomuk and Vishesh Handa.</div>
<div>By Simeon Bird.</div>


<p style="color: grey;"><i>Updated March 8, 2013, 4:55 a.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">New cunning plan: do not require action on the part of services other than the storage.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description  (updated)</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;">Fix bug 292950 by deleting QCoreApplication only after Storage->ServerCore.

The bug occurs because Storage->ServerCore may persist after
QCoreApplication is gone. If the socket receives a remote disconnected
message from virtuoso (which it might because this is shutdown and
virtuoso is being killed) it tries to translate it, but can't because
the translators went with QCoreApplication. Thus the crash.

This was made much less likely by Vishesh already with cea2870f04eec
but we can do better.

For most services connect QCoreApplication::quit() to the service destroyed() signal.
For the storage service, disconnect that slot from the service and reconnect it to 
ServerCore::destroyed() (so that the application is only quit after the
ServerCore destructor runs). We do this in the service dtor, which is allowed because the 
dtor runs before destroyed() is emitted (I checked this).

BUG: 292950
FIXED-IN: 4.10.1</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;">Compiled, checked shutdown and restart</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=292950">292950</a>


</div>


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

 <li>services/storage/storage.cpp <span style="color: grey">(16f7fd483eeb462227287c797c4619c78c23092d)</span></li>

 <li>servicestub/servicecontrol.cpp <span style="color: grey">(97f96d4ed33c452fdc91ea666c91b6fbced1e461)</span></li>

</ul>

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







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




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