Bug 108498 - [Crash] When clicking "Open Link in External Browser" from Akregator inside Kontact
Summary: [Crash] When clicking "Open Link in External Browser" from Akregator inside K...
Status: RESOLVED WORKSFORME
Alias: None
Product: akregator
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-07-03 18:00 UTC by Hugo Rodrigues
Modified: 2005-07-04 02:36 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hugo Rodrigues 2005-07-03 18:00:07 UTC
Version:           1.4.50 (using KDE 3.4.89 (>= 20050615), compiled sources)
Compiler:          gcc version 3.4.3 (Mandrakelinux 10.2 3.4.3-7mdk)
OS:                Linux (i686) release 2.6.11-6mdk-i586-up-1GB

Akregator crashes Kontact when clicking "Open Link in External Browser" (from inside Kontact).
Here's the crash debug output:

-------------------
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1239660864 (LWP 27246)]
[KCrash handler]
#7  0xb72dc539 in KXMLGUIClient::factory (this=0x0) at qguardedptr.h:117
#8  0xb72e4418 in KXMLGUIFactory::removeClient (this=0x8188330, 
    client=0x85fbd28) at /root/kdesvn/kdelibs/kdeui/kxmlguifactory.cpp:326
#9  0xb56a81eb in Akregator::Part::mergePart (this=0x8517fc8, part=0x853d5e8)
    at /root/kdesvn/kdepim/akregator/src/akregator_part.cpp:436
#10 0xb56b2811 in Akregator::View::slotFrameChanged (this=0x8524198, 
    f=0x8541590) at /root/kdesvn/kdepim/akregator/src/akregator_view.cpp:676
#11 0xb56b7159 in Akregator::View::qt_invoke (this=0x8524198, _id=57, 
    _o=0xbfffd230) at qucom_p.h:312
#12 0xb69b46c8 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x080b701c in ?? ()
#14 0xb62883d9 in ioctl () from /lib/tls/libc.so.6
#15 0x0852cc98 in ?? ()
#16 0xb6dff574 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0x08ce2a68 in ?? ()
#18 0x08638298 in ?? ()
#19 0xb6c6f542 in QMutex::unlock () from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x080b6ff8 in ?? ()
#21 0x01dff574 in ?? ()
#22 0x0852cc98 in ?? ()
#23 0xb56c5b44 in ?? () from /root/kde/lib/kde3/libakregatorpart.so
#24 0xbfffd258 in ?? ()
#25 0xbfffd230 in ?? ()
#26 0xbfffd278 in ?? ()
#27 0xb568e34d in Akregator::TabWidget::currentFrameChanged (this=0x39, t0=0x0)
    at tabwidget.moc:130
-------------------
Comment 1 Thiago Macieira 2005-07-03 23:20:30 UTC
The lines leading to the crash are:

   321  void KXMLGUIFactory::removeClient( KXMLGUIClient *client )
   322  {
   323      kdDebug(129) << "KXMLGUIFactory::removeClient( " << client << " )" << endl; // ellis
   324
   325      // don't try to remove the client's GUI if we didn't build it
   326      if ( !client || client->factory() != this )
   327          return;
 
Note how it is impossible to have KXMLGUIClient::factory() be called with this=0x0: 1) client is 0x85fbd28 according to backtrace; and 2) by construction, client=0x0 won't call KXMLGUIClient::factory().

So this is either:
- miscompilation
or
- misleading backtrace, due to optimisations (note KXMLGUIClient::factory() being on qsharedptr.h)
or
- invalid d-pointer (copy-constructed object)

Would you mind rebuilding libkdeui with -O0?
Comment 2 Thiago Macieira 2005-07-03 23:24:07 UTC
I might also add that I cannot reproduce this. I've tested with Kontact trunk 430465.
Comment 3 Hugo Rodrigues 2005-07-03 23:34:18 UTC
Indeed I've compiled kdelibs with compiler option "-Os" in order to reduce the huge size of the created binarys (I was running out of disk space :s). But I was not aware that compiler optimizations would create miscompiled code or even lead to misleading backtraces. Thanks for the info. I'll try and compile it again with "-O0" and see if it happens again. BTW, the crash only happened once. So with all this in mind I'm closing the bugreport and I'll reoppen it again if necessary.

P.S.: Thiago -> Now I know why you're always on the top of the top 10 KDE bug fixers, you are indeed lightening fast, keep it up ;).
Comment 4 Frank Osterfeld 2005-07-03 23:44:00 UTC
I just fixed a related bug with a very similar bt. (Akr crashed on "Detach Tab")
I can't reproduce this one using "open link in external browser" in kontact, but it's very likely that it is as least related, if not even the same bug.
Please update and check again.

#4  0xb71aa069 in KXMLGUIClient::factory () from /usr/lib/libkdeui.so.4
#5  0xb71add08 in KXMLGUIFactory::removeClient () from /usr/lib/libkdeui.so.4
#6  0xb5e58268 in Akregator::Part::mergePart (this=0x8190b50, part=0x82110c8)
    at akregator_part.cpp:436
#7  0xb5e5fd0b in Akregator::View::slotFrameChanged (this=0x81e7cb0, 
    f=0x8239278) at akregator_view.cpp:676
#8  0xb5e639c2 in Akregator::View::qt_invoke (this=0x81e7cb0, _id=57, 
    _o=0xbfffd110) at akregator_view.moc:388
#9  0xb683a067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#10 0xb5e4487d in Akregator::TabWidget::currentFrameChanged (this=0x82004f8, 
    t0=0x8239278) at tabwidget.moc:130
#11 0xb5e43570 in Akregator::TabWidget::slotTabChanged (this=0x82004f8, 
    w=0x81de378) at tabwidget.cpp:101
#12 0xb5e44a3d in Akregator::TabWidget::qt_invoke (this=0x82004f8, _id=72, 
    _o=0xbfffd220) at tabwidget.moc:145
#13 0xb683a067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#14 0xb6b6f277 in QTabWidget::currentChanged () from /usr/lib/libqt-mt.so.3
#15 0xb6958add in QTabWidget::showTab () from /usr/lib/libqt-mt.so.3
#16 0xb6b6f370 in QTabWidget::qt_invoke () from /usr/lib/libqt-mt.so.3
#17 0xb7219b34 in KTabWidget::qt_invoke () from /usr/lib/libkdeui.so.4
#18 0xb5e44a58 in Akregator::TabWidget::qt_invoke (this=0x82004f8, _id=48, 
    _o=0xbfffd380) at tabwidget.moc:147
#19 0xb683a067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#20 0xb683a1be in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#21 0xb6b6ebde in QTabBar::selected () from /usr/lib/libqt-mt.so.3
#22 0xb7214c32 in KTabBar::setTabEnabled () from /usr/lib/libkdeui.so.4
#23 0xb695863d in QTabWidget::removePage () from /usr/lib/libqt-mt.so.3
#24 0xb7218a04 in KTabWidget::removePage () from /usr/lib/libkdeui.so.4
#25 0xb6959c7e in QTabWidget::eventFilter () from /usr/lib/libqt-mt.so.3
#26 0xb6837b01 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#27 0xb6837a5d in QObject::event () from /usr/lib/libqt-mt.so.3
#28 0xb686d76f in QWidget::event () from /usr/lib/libqt-mt.so.3
#29 0xb67e2370 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#30 0xb67e19d4 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#31 0xb6dffab5 in KApplication::notify () from /usr/lib/libkdecore.so.4
#32 0xb683835b in QObject::removeChild () from /usr/lib/libqt-mt.so.3
#33 0xb6837118 in QObject::~QObject () from /usr/lib/libqt-mt.so.3
#34 0xb68682e6 in QWidget::~QWidget () from /usr/lib/libqt-mt.so.3
#35 0xb6941847 in QScrollView::~QScrollView () from /usr/lib/libqt-mt.so.3
#36 0xb78b2fe8 in KHTMLView::~KHTMLView () from /usr/lib/libkhtml.so.4
#37 0xb5e441f9 in Akregator::TabWidget::slotDetachTab (this=0x82004f8)
    at tabwidget.cpp:212
#38 0xb5e4496a in Akregator::TabWidget::qt_invoke (this=0x82004f8, _id=67, 
    _o=0xbfffdbc0) at tabwidget.moc:140
#39 0xb683a067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#40 0xb6839eae in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#41 0xb70e488b in KAction::activated () from /usr/lib/libkdeui.so.4
#42 0xb70e3ffa in KAction::slotActivated () from /usr/lib/libkdeui.so.4
#43 0xb70e4129 in KAction::slotPopupActivated () from /usr/lib/libkdeui.so.4
#44 0xb70e4b81 in KAction::qt_invoke () from /usr/lib/libkdeui.so.4
#45 0xb683a067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#46 0xb6b551a5 in QSignal::signal () from /usr/lib/libqt-mt.so.3
#47 0xb6852ca9 in QSignal::activate () from /usr/lib/libqt-mt.so.3
#48 0xb6937acc in QPopupMenu::keyPressEvent () from /usr/lib/libqt-mt.so.3
#49 0xb70d165f in KPopupMenu::keyPressEvent () from /usr/lib/libkdeui.so.4
#50 0xb686d837 in QWidget::event () from /usr/lib/libqt-mt.so.3
#51 0xb67e2370 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#52 0xb67e1eb0 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#53 0xb6dffab5 in KApplication::notify () from /usr/lib/libkdecore.so.4
#54 0xb677d056 in QETWidget::translateKeyEvent () from /usr/lib/libqt-mt.so.3
#55 0xb6778ee1 in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#56 0xb678eec2 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#57 0xb67f374c in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#58 0xb67e25d3 in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
#59 0xb69390c8 in QPopupMenu::exec () from /usr/lib/libqt-mt.so.3
#60 0xb5e43fc4 in Akregator::TabWidget::contextMenu (this=0x82004f8, i=1, 
    p=@0xbfffec08) at tabwidget.cpp:198
#61 0xb7219aa8 in KTabWidget::qt_invoke () from /usr/lib/libkdeui.so.4
#62 0xb5e44a58 in Akregator::TabWidget::qt_invoke (this=0x82004f8, _id=58, 
    _o=0xbfffeb90) at tabwidget.moc:147
#63 0xb683a067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#64 0xb72161c4 in KTabBar::contextMenu () from /usr/lib/libkdeui.so.4
#65 0xb7214db9 in KTabBar::mousePressEvent () from /usr/lib/libkdeui.so.4
#66 0xb686d7d8 in QWidget::event () from /usr/lib/libqt-mt.so.3
#67 0xb695630c in QTabBar::event () from /usr/lib/libqt-mt.so.3
#68 0xb67e2370 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#69 0xb67e1ac7 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#70 0xb6dffab5 in KApplication::notify () from /usr/lib/libkdecore.so.4
#71 0xb677b12f in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#72 0xb6778e1c in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#73 0xb678eec2 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#74 0xb67f374c in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#75 0xb67f360e in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#76 0xb67e257b in QApplication::exec () from /usr/lib/libqt-mt.so.3
#77 0x08051823 in main (argc=1, argv=0xbffff794) at main.cpp:102
Comment 5 Thiago Macieira 2005-07-04 01:04:55 UTC
If any of you can get us an -O0 backtrace, it would be appreciated.
Comment 6 Hugo Rodrigues 2005-07-04 01:13:10 UTC
Do you need both kdelibs (containing libkdeui) and kdepim (akregator) compiled with -O0 or will just kdepim work for you? I currently use Kdesvnbuild script to build KDE so I have to compile the whole module not just akregator or libkdeui (or am I wrong?) which is a pain :s
Comment 7 Thiago Macieira 2005-07-04 01:18:21 UTC
Both if you can, but libkdeui seems to be the problem here.

Note that -O0 binaries with debugging take up a lot of space.
Comment 8 Hugo Rodrigues 2005-07-04 01:51:27 UTC
After some thinking I remember that what trigered the crash was not "Open Link in External Browser" but was really "Detach Tab", so it must be the same bug that Frank pointed. I'm sure of this because I was not able to reproduce the crash with "Open Link in External Browser" but now I can everytime with "Detach Tab". Sorry for the mistake there. Anyway I'm currently compiling kdepim again (since Frank mentioned he already fized the bug) and I will let you know if the bug persists (keeping my fingers crossed :).
Comment 9 Hugo Rodrigues 2005-07-04 02:36:23 UTC
I have now compiled kdelibs fresh from SVN and I can confirm that it doesn't crash anymore. This was indeed the same bug that Frank mentioned he had fixed.
Just think that I had compiled kdepim just 3 hours before he fixed the bug...
Thanks goes out Frank and Thiago for the attention and for fixing the bug even before I reported it :)