Bug 104920 - Kopete crash on exit with IRC
Summary: Kopete crash on exit with IRC
Status: RESOLVED WORKSFORME
Alias: None
Product: kopete
Classification: Applications
Component: IRC Plugin (show other bugs)
Version: unspecified
Platform: Mandriva RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords: triaged
: 109790 115799 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-05-01 20:14 UTC by Nicolas L.
Modified: 2020-08-27 09:45 UTC (History)
5 users (show)

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 Nicolas L. 2005-05-01 20:14:53 UTC
Version:            (using KDE KDE 3.4.0)
Installed from:    Mandriva RPMs

this is a bug report from the mandriva Bz:   http://qa.mandriva.com/show_bug.cgi?id=15577

I have created the test IRC account with only nickname (no real name, no 
password, no alternative nickname), server was set to freenode. 
 
I tried to connect to server and selected #mandriva channel, then closed 
connection and selected Exit from kopete tray icon menu. It crashed, stack 
trace below: 
 
Using host libthread_db library "/lib/tls/libthread_db.so.1". 
[Thread debugging using libthread_db enabled] 
[New Thread -1238180960 (LWP 11343)] 
[KCrash handler] 
#7  0x08409f17 in ?? () 
#8  0xb7f54a73 in ~Account (this=0x837b970) at kopeteaccount.cpp:102 
#9  0xb7f54c0c in ~PasswordedAccount (this=0x837b970) 
    at kopetepasswordedaccount.cpp:47 
#10 0xb5eb7490 in ~IRCAccount (this=0x837b970) at ircaccount.cpp:236 
#11 0xb719d9ac in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3 
#12 0x0837b970 in ?? () 
#13 0x08277200 in ?? () 
#14 0xbfffef20 in ?? () 
#15 0xb75ea4d4 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3 
#16 0xb75ea4d4 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3 
#17 0x08229ec0 in ?? () 
#18 0x085d42d8 in ?? () 
#19 0xb713b055 in QApplication::internalNotify () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#20 0x0837b970 in ?? () 
#21 0x085d42d8 in ?? () 
#22 0x085d42d8 in ?? () 
#23 0xb7479960 in QGList::clear () from /usr/lib/qt3/lib/libqt-mt.so.3 
#24 0x08223ce0 in ?? () 
#25 0x00000000 in ?? () 
#26 0xbffff200 in ?? () 
#27 0x00000000 in ?? () 
#28 0x0000000c in ?? ()


I can reproduce it too.


regards 

Nicolas
Comment 1 Olivier Goffart 2005-05-01 20:37:45 UTC

*** This bug has been marked as a duplicate of 102735 ***
Comment 2 Michel Hermier 2005-05-01 20:43:56 UTC
I don't beleive this is IRC specific.
It seems we try to delete myself explicitly, while it should destroy by 
itself, as the meta contact myself should be the child of the account object.
Maybe there is a mistake in IRC so, it delete the myself pointer explicitly 
(which is an error), but also deleting it inside the Account class is an 
error.
Comment 3 Jan Ritzerfeld 2005-07-26 23:41:08 UTC
Still present in current svn trunk (bt from 2005-07-22):
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1105391744 (LWP 6623)]
[KCrash handler]
#7  0x00000000 in ?? ()
#8  0x40124b95 in ~Account (this=0x834b4e8) at kopeteaccount.cpp:105
#9  0x40140fe7 in ~PasswordedAccount (this=0x834b4e8)
    at kopetepasswordedaccount.cpp:47
#10 0x42979136 in ~IRCAccount (this=0x834b4e8) at ircaccount.cpp:219
#11 0x413feccc in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0x4139bbaf in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x4139d773 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0x410266d1 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#15 0x4139c9f0 in QApplication::sendPostedEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0x4139ca74 in QApplication::sendPostedEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#17 0x41348b28 in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0x413b3b41 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0x413b3986 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x4139d63f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#21 0x0806fe7a in main (argc=2, argv=0xbffff2c4) at main.cpp:102
Comment 4 Jan Ritzerfeld 2005-07-28 21:02:25 UTC
*** Bug 109790 has been marked as a duplicate of this bug. ***
Comment 5 Tommi Rantala 2005-08-10 16:59:19 UTC
SVN commit 445143 by rantala:

BUG: 104920

backport revision 410353:

Modify IRCContactManager to use account->networkName() instead of
account->engine()->currentHost() as the 'nick name' for server contacts.

This nick name is eventually used by Kopete::Account::registerContact()
and causes problems because currentHost() returns null string before the
account is connected to a server.

Notes:
- I had to add two new parameters to IRCAccount (networkName & nickName),
  because the contacts are created when the account is constructed. So calling
  account->setNickName() etc. in editaccountwidget is not enough.
- Gets rid of "QGDict::hashKeyString: Invalid null key" when accounts are
  created at startup, and when they are deleted (that was caused by
  currentHost()).
- Fix crashing after creating a new IRC account and quitting right after
  that (at least I'm experiencing this with 0.10 & SVN).



 M  +11 -3     ircaccount.cpp  
 M  +2 -1      ircaccount.h  
 M  +1 -1      irccontactmanager.cpp  
 M  +6 -3      ui/irceditaccountwidget.cpp  


--- branches/KDE/3.4/kdenetwork/kopete/protocols/irc/ircaccount.cpp #445142:445143
@@ -93,7 +93,7 @@
 const QString IRCAccount::CONFIG_USERNAME = QString::fromLatin1("UserName");
 const QString IRCAccount::CONFIG_REALNAME = QString::fromLatin1("RealName");
 
-IRCAccount::IRCAccount(IRCProtocol *protocol, const QString &accountId, const QString &autoChan )
+IRCAccount::IRCAccount(IRCProtocol *protocol, const QString &accountId, const QString &autoChan, const QString& netName, const QString &nickName)
 	: Kopete::PasswordedAccount(protocol, accountId, 0, true), autoConnect( autoChan )
 {
 	m_manager = 0L;
@@ -146,8 +146,16 @@
 	currentHost = 0;
 
 	KConfigGroup *config = configGroup();
-	QString networkName = config->readEntry(CONFIG_NETWORKNAME);
-	mNickName = config->readEntry(CONFIG_NICKNAME);
+
+	QString networkName = netName;
+	if (networkName.isNull())
+		networkName = config->readEntry(CONFIG_NETWORKNAME);
+
+	if (!nickName.isNull())
+		setNickName(nickName);
+	else
+		mNickName = config->readEntry(CONFIG_NICKNAME);
+
 	QString codecMib = config->readEntry(CONFIG_CODECMIB);
 	//	int codecMib = config->readNumEntry(CONFIG_CODECMIB, UTF-8);
 
--- branches/KDE/3.4/kdenetwork/kopete/protocols/irc/ircaccount.h #445142:445143
@@ -118,7 +118,8 @@
 		Ignore = 5
 	};
 
-	IRCAccount(IRCProtocol *p, const QString &accountid, const QString &autoConnect = QString::null);
+	IRCAccount(IRCProtocol *p, const QString &accountid, const QString &autoConnect = QString::null,
+			const QString& networkName = QString::null, const QString &nickName = QString::null);
 	~IRCAccount();
 
 	void setNickName( const QString & );
--- branches/KDE/3.4/kdenetwork/kopete/protocols/irc/irccontactmanager.cpp #445142:445143
@@ -46,7 +46,7 @@
 
 	Kopete::MetaContact *m = new Kopete::MetaContact();
 //	m->setTemporary( true );
-	m_myServer = new IRCServerContact(this, account->engine()->currentHost(), m);
+	m_myServer = new IRCServerContact(this, account->networkName(), m);
 
 	QObject::connect(account->engine(), SIGNAL(incomingMessage(const QString &, const QString &, const QString &)),
 			this, SLOT(slotNewMessage(const QString &, const QString &, const QString &)));
--- branches/KDE/3.4/kdenetwork/kopete/protocols/irc/ui/irceditaccountwidget.cpp #445142:445143
@@ -230,17 +230,20 @@
 
 	if( !account() )
 	{
-		setAccount( new IRCAccount( mProtocol, generateAccountId(networkName) ) );
+		setAccount( new IRCAccount( mProtocol, generateAccountId(networkName), QString::null, networkName, nickName ) );
 
 	}
+	else
+	{
+		account()->setNickName( nickName );
+		account()->setNetwork( networkName );
+	}
 
 	mPasswordWidget->save( &account()->password() );
 
-	account()->setNickName( nickName );
 	account()->setAltNick( mAltNickname->text() );
 	account()->setUserName( mUserName->text() );
 	account()->setRealName( m_realNameLineEdit->text() );
-	account()->setNetwork( networkName );
 	account()->setDefaultPart( partMessage->text() );
 	account()->setDefaultQuit( quitMessage->text() );
 	account()->setAutoShowServerWindow( autoShowServerWindow->isChecked() );
Comment 6 S. Burmeister 2005-11-15 10:41:54 UTC
I think I see this bug again in 3.5 RC1.

The backtrace is not very good though:

(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 1104327840 (LWP 8878)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#4  0x40099e2e in Kopete::Account::~Account ()
   from /opt/kde3/lib/libkopete.so.1
#5  0x40099f72 in Kopete::PasswordedAccount::~PasswordedAccount ()
   from /opt/kde3/lib/libkopete.so.1
#6  0x42901e28 in init_kopete_irc () from /opt/kde3/lib/kde3/kopete_irc.so
#7  0x41027988 in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#8  0x40fc7d81 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#9  0x40fc86f9 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#10 0x40ca76ee in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#11 0x40fc9757 in QApplication::sendPostedEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#12 0x40fdece6 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#13 0x40fdeb76 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0x40fc76cf in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0x0807e7e0 in ?? ()
#16 0xbfe98270 in ?? ()
#17 0xbfe983a4 in ?? ()
#18 0xbfe9839c in ?? ()
#19 0x00000000 in ?? ()
#20 0x00000000 in ?? ()
#21 0x00000001 in ?? ()
#22 0x080df51c in vtable for QGList ()
#23 0x080dd969 in vtable for QGList ()
#24 0x080dd953 in vtable for QGList ()
#25 0x080dd93f in vtable for QGList ()
#26 0x416a08d8 in main_arena () from /lib/tls/libc.so.6
#27 0x416a08d8 in main_arena () from /lib/tls/libc.so.6
#28 0x00000003 in ?? ()
#29 0x00000020 in ?? ()
#30 0x00000011 in ?? ()
#31 0x416a08a8 in main_arena () from /lib/tls/libc.so.6
#32 0x080dac48 in vtable for QGList ()
#33 0x00000020 in ?? ()
#34 0x08156a28 in ?? ()
#35 0x00000000 in ?? ()
#36 0x081c3a08 in ?? ()
#37 0x0820a680 in ?? ()
#38 0x0820a150 in ?? ()
#39 0x0820b748 in ?? ()
#40 0x089dd108 in ?? ()
#41 0x00000000 in ?? ()
#42 0x00000001 in ?? ()
#43 0x0813bb98 in ?? ()
#44 0x00000000 in ?? ()
#45 0x00000000 in ?? ()
#46 0x08211458 in ?? ()
#47 0x081c4818 in ?? ()
#48 0x081ca6a0 in ?? ()
#49 0x416a0800 in _IO_stdfile_0_lock () from /lib/tls/libc.so.6
#50 0x080daccc in vtable for QGList ()
#51 0x0813bdf8 in ?? ()
#52 0x0813bc58 in ?? ()
#53 0x081cc1a0 in ?? ()
#54 0x0812c400 in vtable for QCString ()
#55 0x0813bbd0 in ?? ()
#56 0xbfe98360 in ?? ()
#57 0x081cae58 in ?? ()
#58 0x08156a38 in ?? ()
#59 0x00000132 in ?? ()
#60 0x000001ff in ?? ()
#61 0x080dcf7f in vtable for QGList ()
#62 0x4408a5a8 in ?? ()
#63 0x0813bbf0 in ?? ()
#64 0x41474d01 in ?? () from /usr/lib/qt3/lib/libqt-mt.so.3
#65 0x082040b0 in ?? ()
#66 0x081c9110 in ?? ()
#67 0x412e29ae in QGDict::look_ascii () from /usr/lib/qt3/lib/libqt-mt.so.3
#68 0x41598ea0 in __libc_start_main () from /lib/tls/libc.so.6
#69 0x08072371 in ?? ()
Comment 7 Jan Ritzerfeld 2005-11-15 11:37:11 UTC
Confirmed.
Comment 8 Tommi Rantala 2005-11-15 12:38:58 UTC
3.5.0 RC1 distro package    : crash
branches/3.5 debug build    : no crash
branches/3.5 no debug build : no crash

Perhaps something committed after rc1 has already fixed this?
Comment 9 Jan Ritzerfeld 2005-11-15 12:52:21 UTC
Kopete's irc does not crash on every exit. I am using dev-0.12 branch.
Comment 10 Robert Knight 2007-05-20 13:31:33 UTC
I think I can reproduce the same bug.

My backtrace:

#6  0x002d0031 in ?? ()
#7  0xb7e11db4 in Kopete::Account::~Account () from /usr/lib/libkopete.so.1
#8  0xb7e2e462 in Kopete::PasswordedAccount::~PasswordedAccount ()
   from /usr/lib/libkopete.so.1
#9  0xb55daa8a in IRCAccount::~IRCAccount () from /usr/lib/kde3/kopete_irc.so
#10 0xb683af54 in QObject::event (this=0x83a35a8, e=0x8411040)
    at kernel/qobject.cpp:750
#11 0xb67d2a60 in QApplication::internalNotify (this=0xbfaf8c34, 
    receiver=0x83a35a8, e=0x8411040) at kernel/qapplication.cpp:2635
#12 0xb67d488f in QApplication::notify (this=0xbfaf8c34, receiver=0x83a35a8, 
    e=0x8411040) at kernel/qapplication.cpp:2358
#13 0xb6f96ce2 in KApplication::notify () from /usr/lib/libkdecore.so.4
#14 0xb67651e9 in QApplication::sendEvent (receiver=0x83a35a8, 
    event=0x8411040) at ../include/qapplication.h:520
#15 0xb67d3a98 in QApplication::sendPostedEvents (receiver=0x0, event_type=52)
    at kernel/qapplication.cpp:3299
#16 0xb67ed226 in QEventLoop::enterLoop (this=0x816b360)
    at kernel/qeventloop.cpp:213
#17 0xb67ecf46 in QEventLoop::exec (this=0x816b360)
    at kernel/qeventloop.cpp:145
#18 0xb67d4609 in QApplication::exec (this=0xbfaf8c34)
    at kernel/qapplication.cpp:2758
Comment 11 Nicolas L. 2009-02-17 08:45:33 UTC
*** Bug 115799 has been marked as a duplicate of this bug. ***
Comment 12 Christoph Feck 2013-09-12 21:47:59 UTC
This crash report is at least 3 years old and there were no further comments or status updates since then.

Therefore we believe that this crash is already fixed in recent KDE 4 versions or the backtrace is no longer applicable to the current KDE 4 sources.

If the crash still happens with a recent KDE version (4.10.5 or 4.11), please add an updated backtrace or provide steps to reproduce. For more information, see http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports

(To prevent automatic closing of this bug in the future, please set the bug status to ASSIGNED or CONFIRMED)
Comment 13 Andrew Crouthamel 2018-09-25 03:32:15 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 14 Andrew Crouthamel 2018-10-27 01:59:31 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!