[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