Bug 124133 - Crash if window is hidden while connecting to servers/channels
Summary: Crash if window is hidden while connecting to servers/channels
Status: RESOLVED FIXED
Alias: None
Product: konversation
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Mandriva RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Konversation Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-23 14:13 UTC by Eduardo Habkost
Modified: 2006-07-03 09:44 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Experimental patch (548 bytes, patch)
2006-03-23 14:16 UTC, Eduardo Habkost
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eduardo Habkost 2006-03-23 14:13:41 UTC
Version:           0.19+ (revision 521725 from svn) (using KDE KDE 3.5.1)
Installed from:    Mandriva RPMs
Compiler:          gcc 4.0.2 (4.0.2-1mdk from Mandriva) 
OS:                Linux

Steps to reproduce:

- Open konversation
- Having many different servers and channels on the server list dialog may make reproducing easier (I have 3 servers, one server with around 6 auto-join channels and the others 2 servers with 2 channels each)
- Select all servers and click on "connect"
- Quickly closes the konversation window (it will go to the systray), before the connection finishes and any channel tab wasn't created yet
- Konversation crash with this backtrace:

Using host libthread_db library "/lib/tls/libthread_db.so.1".
`shared object read from target memory' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1236482368 (LWP 534)]
[KCrash handler]
#6  0x080f9f5e in Channel::showQuickButtons (this=0x84d2738, show=false)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/channel.cpp:1810
#7  0x080fdbd9 in Channel::updateAppearance (this=0x84d2738)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/channel.cpp:1975
#8  0x080ffb97 in Channel (this=0x84d2738, parent=0x83064e8)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/channel.cpp:305
#9  0x080980ff in KonversationMainWindow::addChannel (this=0x8302bd0, 
    server=0x82e79b8, name=@0xbf911bb0)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/konversationmainwindow.cpp:968
#10 0x08124b0d in Server::joinChannel (this=0x82e79b8, name=@0xbf911bb0, 
    hostmask=@0xbf911bec)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/server.cpp:2012
#11 0x080ef169 in InputFilter::parseClientCommand (this=0x82e7bb8, 
    prefix=@0xbf911ea0, command=@0xbf911e9c, parameterList=@0xbf911e98, 
    _trailing=@0xbf911ea8)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/inputfilter.cpp:482
#12 0x080f78f8 in InputFilter::parseLine (this=0x82e7bb8, 
    a_newLine=@0xbf911f18)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/inputfilter.cpp:114
#13 0x0811c6e3 in Server::processIncomingData (this=0x82e79b8)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/server.cpp:1041
#14 0x08126589 in Server::qt_invoke (this=0x82e79b8, _id=56, _o=0xbf912098)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/server.moc:852
#15 0xb6e4798d in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0xb6e47df6 in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0xb713afe5 in QTimer::timeout () from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0xb6e68af7 in QTimer::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0xb6deddeb in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0xb6dee4aa in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0xb74e9554 in KApplication::notify () from /usr/lib/libkdecore.so.4
#22 0xb6de2ff4 in QEventLoop::activateTimers ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb6d9f90d in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb6e02731 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb6e02654 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0xb6ded59f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0x0812b642 in main (argc=1, argv=0xbf9127d4)
    at /home/ehabkost/pessoal/proj/kde/svn/trunk/extragear/network/konversation/src/main.cpp:109


Looks like buttonsGrid is NULL on Channel::showQuickButtons(). Looks like calling showQuickButtons() before updateQuickButtons() in the constructor is the cause of the problem. But I can't explain why this causes the crash only when the konversation window is hidden.
Comment 1 Eduardo Habkost 2006-03-23 14:16:48 UTC
Created attachment 15267 [details]
Experimental patch

As showQuickButtons() is already called inside updateQuickButtons() (and with
buttonsGrid properly created), this fix the problem.

I just can't explain yet why the crash happens only if the konversation window
is hidden.
Comment 2 Peter Simonsson 2006-07-03 09:44:33 UTC
Patch is applied to svn trunk, will be in 0.20. Thanks for the report and patch.