Crashing AboutDialogBox due to addAuthor() on MacOSX

1 view
Skip to first unread message

Marko Käning

unread,
Jun 19, 2011, 9:28:21 AM6/19/11
to KDE-devel Mailing-List
Hi KDE-developers,

I've found a crash on Mac OS X. [1]

When an app has an about dialog available which includes at least one author added using addAuthor() the application will crash as described originally in [2].

All one needs to do is to open the about dialog from Mac OSX' global menu and select the author tab. Either the app crashes immediately or after leaving the dialog by pressing the close button.

I assumed that this could be a QT issue, which is why I also posted at QT-dev [3], but I am afraid this is KDE stuff.

Any ideas?

Greets,
Marko


[1] https://bitbucket.org/mkae/kde-tests/issue/1/aboutboxcrash-only-on-mac-os-x
[2] https://trac.macports.org/ticket/28410#comment:30
[3] http://developer.qt.nokia.com/forums/viewthread/6725/

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

Marko Käning

unread,
Jun 19, 2011, 10:16:13 AM6/19/11
to Teo Mrnjavac, kde-...@kde.org
Hi Teo,

Thanks for your response!

> I do have an idea, not sure if it's actually a good one...
> Could you please check if it happens with any item view that uses
> KWidgetItemDelegate, like a KNewStuff3 item view?

if I only knew how to modify my code at

https://bitbucket.org/mkae/kde-tests/src/d4aad378ca71/AboutBoxCrash/

in such a way that I could achieve what you mean.

I just took the code from KDE's tutorial #2 and added one line to demonstrate the crash.

I have no idea, how to use any other view which would be using KWidgetItemDelegate.

If you could give me a reference to a exemplary code it would be very helpful, since my QT/KDE knowledge is basically zero. :-/

Would be great if we could tackle this bug together. :-)

Greets,
Marko

Teo Mrnjavac

unread,
Jun 19, 2011, 10:44:39 AM6/19/11
to Marko Käning, kde-...@kde.org
On Sun, Jun 19, 2011 at 16:16, Marko Käning <mk-l...@email.de> wrote:
> Hi Teo,
>
> Thanks for your response!
>
>> I do have an idea, not sure if it's actually a good one...
>> Could you please check if it happens with any item view that uses
>> KWidgetItemDelegate, like a KNewStuff3 item view?
>
> if I only knew how to modify my code at
>
>        https://bitbucket.org/mkae/kde-tests/src/d4aad378ca71/AboutBoxCrash/
>
> in such a way that I could achieve what you mean.
>
> I just took the code from KDE's tutorial #2 and added one line to demonstrate the crash.
>
> I have no idea, how to use any other view which would be using KWidgetItemDelegate.
>
> If you could give me a reference to a exemplary code it would be very helpful, since my QT/KDE knowledge is basically zero. :-/

Hello
An instance of KNewStuff3 is used in Dolphin.
Settings -> Configure Dolphin... -> Services -> Download New Services...
The dialog that pops up has a view which uses a delegate derived from
KWidgetItemDelegate, so if that crashes too then it might give us a
clue.
Cheers,
--
Teo

Teo Mrnjavac

unread,
Jun 19, 2011, 10:07:53 AM6/19/11
to kde-...@kde.org
On Sun, Jun 19, 2011 at 15:28, Marko Käning <mk-l...@email.de> wrote:
> Hi KDE-developers,
>
> I've found a crash on Mac OS X. [1]
>
> When an app has an about dialog available which includes at least one author added using addAuthor() the application will crash as described originally in [2].
>
> All one needs to do is to open the about dialog from Mac OSX' global menu and select the author tab. Either the app crashes immediately or after leaving the dialog by pressing the close button.
>
> I assumed that this could be a QT issue, which is why I also posted at QT-dev [3], but I am afraid this is KDE stuff.
>
> Any ideas?

I do have an idea, not sure if it's actually a good one...


Could you please check if it happens with any item view that uses
KWidgetItemDelegate, like a KNewStuff3 item view?

Cheers,
--
Teo

Marko Käning

unread,
Jun 19, 2011, 11:46:06 AM6/19/11
to Teo Mrnjavac, KDE-devel Mailing-List
In the meantime I used KNS from http://techbase.kde.org/Development/Tutorials/Collaboration/HotNewStuff/Introduction (with a few little corrections) and made it build and run.
It runs fine, I can see the wallpaper images no problem.
On pressing the close button the app finishes normally without a crash.



An instance of KNewStuff3 is used in Dolphin.
Settings -> Configure Dolphin... -> Services -> Download New Services...
The dialog that pops up has a view which uses a delegate derived from
KWidgetItemDelegate, so if that crashes too then it might give us a
clue.

OK, but luckily I have Dolphin installed as well and can test your service dialog. That test showed that Dolphin was able to open that dialog and even downloaded services…

BUT, when I tried to call Dolphin's about dialog I got a crash straight away:
---
QWidget: Must construct a QApplication before a QPaintDevice
QKqueueFileSystemWatcherEngine: error during kevent wait: Bad file descriptor
KCrash: crashing... crashRecursionCounter = 2
---
Here it wasn't even necessary to enter the Authors tab, Dolphin crashed before the dialog could be shown. :-(

Marko Käning

unread,
Jun 19, 2011, 12:00:21 PM6/19/11
to KDE-devel Mailing-List
Here it wasn't even necessary to enter the Authors tab, Dolphin crashed before the dialog could be shown. :-(

The same happens with kwrite, kate, lokalize…


Marko Käning

unread,
Jun 19, 2011, 12:29:06 PM6/19/11
to KDE-devel Mailing-List
I realized that I hadn't set the path to the libs correctly in the previous test, which is why the about dialog crashed immediately.

Now I have resurrected the previous state, I see the about dialog and I can select the author tab in there.

Here is what lokalize told me now when selecting Authors before it crashed after pressing the Close button:

lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!
lokalize(81766) KWidgetItemDelegateEventListener::eventFilter: User of KWidgetItemDelegate should not delete widgets created by createItemWidgets!

QKqueueFileSystemWatcherEngine: error during kevent wait: Bad file descriptor
KCrash: crashing... crashRecursionCounter = 2

KCrash: Application Name = lokalize path = /opt/macports-test/Applications/KDE4/lokalize.app/Contents/MacOS pid = 81766
KCrash: Arguments: /opt/macports-test/Applications/KDE4/lokalize.app/Contents/MacOS/lokalize --nocrashhandler

I wonder how interesting the line

QKqueueFileSystemWatcherEngine: error during kevent wait: Bad file descriptor

is. That I hadn't seen in the AboutBoxCrash app in https://bitbucket.org/mkae/kde-tests/issue/1/aboutboxcrash-only-on-mac-os-x

Teo Mrnjavac

unread,
Jun 19, 2011, 12:41:43 PM6/19/11
to Marko Käning, KDE-devel Mailing-List

Ok, thank you for your feedback.
So, let's try and dig deeper to fix this...
1) Is there a way you can install debug symbols for Qt and KDElibs? I
have very little experience with Mac, but I suppose that MacPorts
might offer a way to install -debug or -dbg packages. Our goal is to
get something better than "No symbol table info available." in those
backtraces. I'm the developer who created the new About dialog so I
can try and guess what goes on, but without a better backtrace it will
be hard to figure this out.
2) I see you submitted various reports with two different backtraces
in those links so I don't understand, does the crash happen when you
click on one of the elements of the view or just when you close the
dialog? Or are those two different crashes that are triggered by
different situations? It would be great if you could please submit a
bug report with a backtrace and description on how to reproduce on
bugs.kde.org, and it would be best if we could continue this
discussion there so we don't pollute this mailing list with a single
bug. Use "kdelibs" as target and "kdeui" as component in your report,
and describe how and when the about dialog makes your app crash.
Cheers,
--
Teo

Marko Käning

unread,
Jun 19, 2011, 12:45:08 PM6/19/11
to Teo Mrnjavac, KDE-devel Mailing-List
> It would be great if you could please submit a
> bug report with a backtrace and description on how to reproduce on
> bugs.kde.org, and it would be best if we could continue this
> discussion there so we don't pollute this mailing list with a single
> bug. Use "kdelibs" as target and "kdeui" as component in your report,
> and describe how and when the about dialog makes your app crash.

Will do so, Teo.

:-)

Thanks for your help.

Reply all
Reply to author
Forward
0 new messages