[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-mac
Subject:    Re: [KDE/Mac] Review Request 119498: Report crashes of KDE apps in Apple OS X (2) (fix drkonqi)
From:       "Ian Wadham" <iandw.au () gmail ! com>
Date:       2014-07-29 7:57:34
Message-ID: 20140729075734.15443.36018 () probe ! kde ! org
[Download RAW message or body]

--===============6133717165920227977==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit



> On July 27, 2014, 11:17 a.m., Thomas Lübking wrote:
> > drkonqi/reportassistantpages_bugzilla.cpp, line 286
> > <https://git.reviewboard.kde.org/r/119498/diff/1/?file=293512#file293512line286>
> > 
> > #ifndef

No, #ifdef. The lines following 286 apply to Apple OS X and nothing else. ATM they \
are only explanatory. But there is a place to add code if anybody can think of \
something appropriate (e.g. to check for cookies on the user's browser of choice in a \
portable way, maybe using Qt).


> On July 27, 2014, 11:17 a.m., Thomas Lübking wrote:
> > drkonqi/reportassistantpages_bugzilla.cpp, line 300
> > <https://git.reviewboard.kde.org/r/119498/diff/1/?file=293512#file293512line300>
> > 
> > this is commented.
> > 
> > if the test is pointless altogether (i do not know. no idea. no record on \
> > drkonqui) just remove it with the comment in the commit message, but ifdeffing a \
> > void statement makes us look silly ;-)

The comments on lines 295-298 explain why I have commented out the return statement. \
I am hoping a KDE core developer can suggest a better way of handling the situation \
than aborting Dr Konqi.


- Ian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119498/#review63254
-----------------------------------------------------------


On July 27, 2014, 9:16 a.m., Ian Wadham wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119498/
> -----------------------------------------------------------
> 
> (Updated July 27, 2014, 9:16 a.m.)
> 
> 
> Review request for KDE Software on Mac OS X, KDE Runtime, kdelibs, and Michael \
> Pyne. 
> 
> Repository: kde-runtime
> 
> 
> Description
> -------
> 
> When a KDE app crashes in Apple OS X, it just disappears from the screen. At the \
> most, the user is invited to report the crash to Apple. AFAIK this has been a \
> problem in KDE on Apple OS X for years, leading to frustration with KDE among Apple \
> users and MacPorts developers and an attitude among KDE developers of "Why does \
> nobody report the problem(s) on bugs.kde.org?" 
> It is my strong belief that the failure to report crashes of KDE apps in Apple OS X \
> also exists in Frameworks. 
> So far I have identified a number of portability bugs in KDE on Apple OS X: 1 in \
> KCrash, 1 in kdeinit4 and 5 in Dr Konqi. Three patches for Dr Konqi are submitted \
> in this review. Patches for KCrash and kdeinit4 are submitted in part 1 of this \
> review, against kdelibs. I am still investigating the other two problems in Dr \
> Konqi - and there could be more than two... 
> In this review we have three portability problems:
> 
> 1. On Apple OS X, Dr Konqi's dialog box hides itself underneath the main window of \
> the app that has just crashed, so is effectively useless. This appears to be \
> because Dr Konqi is started by a Linux/Unix method (fork() + exec()?). If an app is \
> started with the Apple OS X "open" command, it always appears on top. The patch \
> just raises the dialog box. 
> 2. When formatting the backtrace output, Dr Konqi crashes (with an ASSERT) on the \
> last line. This appears to be an error in the algorithm used (i.e. also a bug in \
> Linux KDE), but the patch is treating it as an Apple OS X portability problem for \
> now. 
> 3. Dr Konqi checks whether the user can save cookies in kcookiejar and, if not, \
> stops reporting the crash. On Apple OS X, cookies would be kept in another browser \
> (e.g. Safari or Firefox) and not in KDE's default browser (Konqueror) and cookie \
> jar. IMHO, Dr K should report the crash no matter what, as long as it can connect \
> to bugs.kde.org and log in. 
> 
> Diffs
> -----
> 
> drkonqi/reportassistantpages_bugzilla.cpp 86ca327 
> drkonqi/gdbhighlighter.cpp 7cd0aa9 
> drkonqi/main.cpp 75e060e 
> 
> Diff: https://git.reviewboard.kde.org/r/119498/diff/
> 
> 
> Testing
> -------
> 
> Using Apple OS X 10.7.5 (Lion) on a MacBook Pro, I have installed KDE libs via \
> MacPorts (at version 4.12.5) and I have adapted kdesrc-build to run in an Apple OS \
> X environment and used it to test against the KDE 4.13 branch. I have been testing \
> with a KDE app that I can crash at will and using stderr and Apple OS X Console log \
> output to determine the outcome. 
> Please note that I am the -only- KDE developer who has this kind of setup, but I am \
> NOT a KDE core developer. My experience before now has been in KDE Games. However I \
> used to be a UNIX and database guru before I retired in 1998. 
> I NEED HELP from KDE -core- developers to proceed further. These problems will also \
> exist in Dr Konqi for KF 5, but I am as yet unable to build or test Frameworks on \
> Apple OS X and I cannot find Dr Konqi among the Frameworks repositories. I am sure \
> there are many more Apple OS X portability problems in Dr Konqi and other KDE \
> software. 
> Without my patches, Dr Konqi, on Apple OS X, remains invisible to the user, often \
> fails to complete the backtrace report and then fails to connect to bugs.kde.org. 
> With my patches, Dr Konqi on Apple OS X can generate a full crash report, including \
> the backtrace and the results of the dialog with the user. Sometimes, however, it \
> fails to submit the completed report to bugs.kde.org. This problem is still under \
> investigation. 
> I would not have got this far without help from Michael Pyne, Thomas Lübking and \
> several of the MacPorts developers, as well as the unfailing enthusiasm and \
> encouragement of my friend Marko Käning. 
> 
> Thanks,
> 
> Ian Wadham
> 
> 


--===============6133717165920227977==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit




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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On July 27th, 2014, 11:17 a.m. UTC, <b>Thomas \
Lübking</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/119498/diff/1/?file=293512#file293512line286" \
style="color: black; font-weight: bold; text-decoration: \
underline;">drkonqi/reportassistantpages_bugzilla.cpp</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">bool \
BugzillaLoginPage::canSetCookies()</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">286</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="cp">#ifdef Q_OS_MAC</span></pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><h1 style="font-size: \
100%;text-rendering: inherit;padding: 0;white-space: normal;margin: 0;line-height: \
inherit;">ifndef</h1></pre>  </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">No, #ifdef. The lines following 286 apply to Apple OS X and nothing else. \
ATM they are only explanatory. But there is a place to add code if anybody can think \
of something appropriate (e.g. to check for cookies on the user's browser of choice \
in a portable way, maybe using Qt).</p></pre> <br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On July 27th, 2014, 11:17 a.m. UTC, <b>Thomas \
Lübking</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/119498/diff/1/?file=293512#file293512line300" \
style="color: black; font-weight: bold; text-decoration: \
underline;">drkonqi/reportassistantpages_bugzilla.cpp</a>  <span style="font-weight: \
normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">bool \
BugzillaLoginPage::canSetCookies()</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">287</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">return</span><span class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">300</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">            \
return;</span></pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">this \
is commented.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">if the test is pointless altogether (i do not know. no \
idea. no record on drkonqui) just remove it with the comment in the commit message, \
but ifdeffing a void statement makes us look silly ;-)</p></pre>  </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">The comments on lines 295-298 explain why I have commented out the return \
statement. I am hoping a KDE core developer can suggest a better way of handling the \
situation than aborting Dr Konqi.</p></pre> <br />




<p>- Ian</p>


<br />
<p>On July 27th, 2014, 9:16 a.m. UTC, Ian Wadham wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: \
1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;">  <tr>
  <td>

<div>Review request for KDE Software on Mac OS X, KDE Runtime, kdelibs, and Michael \
Pyne.</div> <div>By Ian Wadham.</div>


<p style="color: grey;"><i>Updated July 27, 2014, 9:16 a.m.</i></p>









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


<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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">When a KDE app crashes in Apple OS X, it just \
disappears from the screen. At the most, the user is invited to report the crash to \
Apple. AFAIK this has been a problem in KDE on Apple OS X for years, leading to \
frustration with KDE among Apple users and MacPorts developers and an attitude among \
KDE developers of "Why does nobody report the problem(s) on bugs.kde.org?"</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">It is my strong belief that the failure to report crashes of KDE apps in \
Apple OS X also exists in Frameworks.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">So far I have \
identified a number of portability bugs in KDE on Apple OS X: 1 in KCrash, 1 in \
kdeinit4 and 5 in Dr Konqi. Three patches for Dr Konqi are submitted in this review. \
Patches for KCrash and kdeinit4 are submitted in part 1 of this review, against \
kdelibs. I am still investigating the other two problems in Dr Konqi - and there \
could be more than two...</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">In this review we have three \
portability problems:</p> <ol style="padding: 0;text-rendering: inherit;margin: 0 0 0 \
2em;line-height: inherit;white-space: normal;"> <li style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: normal;"> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">On \
Apple OS X, Dr Konqi's dialog box hides itself underneath the main window of the app \
that has just crashed, so is effectively useless. This appears to be because Dr Konqi \
is started by a Linux/Unix method (fork() + exec()?). If an app is started with the \
Apple OS X "open" command, it always appears on top. The patch just raises the dialog \
box.</p> </li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;"> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">When formatting the backtrace output, \
Dr Konqi crashes (with an ASSERT) on the last line. This appears to be an error in \
the algorithm used (i.e. also a bug in Linux KDE), but the patch is treating it as an \
Apple OS X portability problem for now.</p> </li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;"> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Dr Konqi checks whether the user can \
save cookies in kcookiejar and, if not, stops reporting the crash. On Apple OS X, \
cookies would be kept in another browser (e.g. Safari or Firefox) and not in KDE's \
default browser (Konqueror) and cookie jar. IMHO, Dr K should report the crash no \
matter what, as long as it can connect to bugs.kde.org and log in.</p> </li>
</ol></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Using Apple OS X 10.7.5 (Lion) on a MacBook Pro, I \
have installed KDE libs via MacPorts (at version 4.12.5) and I have adapted \
kdesrc-build to run in an Apple OS X environment and used it to test against the KDE \
4.13 branch. I have been testing with a KDE app that I can crash at will and using \
stderr and Apple OS X Console log output to determine the outcome.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Please note that I am the -only- KDE developer who has this kind of setup, \
but I am NOT a KDE core developer. My experience before now has been in KDE Games. \
However I used to be a UNIX and database guru before I retired in 1998.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">I NEED HELP from KDE -core- developers to proceed further. These problems \
will also exist in Dr Konqi for KF 5, but I am as yet unable to build or test \
Frameworks on Apple OS X and I cannot find Dr Konqi among the Frameworks \
repositories. I am sure there are many more Apple OS X portability problems in Dr \
Konqi and other KDE software.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">Without my patches, Dr \
Konqi, on Apple OS X, remains invisible to the user, often fails to complete the \
backtrace report and then fails to connect to bugs.kde.org.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">With \
my patches, Dr Konqi on Apple OS X can generate a full crash report, including the \
backtrace and the results of the dialog with the user. Sometimes, however, it fails \
to submit the completed report to bugs.kde.org. This problem is still under \
investigation.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">I would not have got this far without \
help from Michael Pyne, Thomas Lübking and several of the MacPorts developers, as \
well as the unfailing enthusiasm and encouragement of my friend Marko \
Käning.</p></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>drkonqi/reportassistantpages_bugzilla.cpp <span style="color: \
grey">(86ca327)</span></li>

 <li>drkonqi/gdbhighlighter.cpp <span style="color: grey">(7cd0aa9)</span></li>

 <li>drkonqi/main.cpp <span style="color: grey">(75e060e)</span></li>

</ul>

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






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








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


--===============6133717165920227977==--



_______________________________________________
kde-mac@kde.org
List Information: https://mail.kde.org/mailman/listinfo/kde-mac
KDE/Mac Information: http://community.kde.org/Mac

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic