From kopete-devel Fri Sep 11 19:39:33 2009 From: "Lamarque Souza" Date: Fri, 11 Sep 2009 19:39:33 +0000 To: kopete-devel Subject: Re: [kopete-devel] Review Request: Fix for crash when disconnecting Message-Id: <20090911193933.16883.88702 () localhost> X-MARC-Message: https://marc.info/?l=kopete-devel&m=125269797029226 > On 2009-09-11 18:51:16, Matt Rogers wrote: > > Let's get this patch committed for safety purposes. Users are seeing tons of crashes at logout time, and if this can help fix it for them, then let's go for it. Actually I was not able to reproduce this problem anymore, I am not confortable in commiting this code without a confirmed use case. I am also busy trying to make ad-hoc wireless work with networkmanager-applet so I am going to stay some time away from Kopete development/fix. - Lamarque ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviewboard.kde.org/r/972/#review2297 ----------------------------------------------------------- On 2009-07-09 12:01:45, Lamarque Souza wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviewboard.kde.org/r/972/ > ----------------------------------------------------------- > > (Updated 2009-07-09 12:01:45) > > > Review request for Kopete. > > > Summary > ------- > > Sometimes Kopete crashes when disconnecting from WLM server. I think I have > found the cause, which seems a race condition in WlmServer::WlmDisconnect: > > 1 if (mainConnection) > 2 { > 3 disconnecting = true; > 4 QListIterator i(cb.socketList); > 5 while (i.hasNext()) > 6 { > 7 a = i.next(); > 8 QObject::disconnect (a, 0, 0, 0); > 9 cb.socketList.removeAll (a); > 10 } > 11 cb.socketList.clear (); > > 12 if (mainConnection->connectionState () != > 13 MSN::NotificationServerConnection::NS_DISCONNECTED) > 14 { > 15 delete mainConnection; > 16 mainConnection = NULL; > 17 } > 18 } > > If WlmServer::WlmDisconnect is called twice in a really short time frame > between the if in line 1 and the delete in line 15 some time will passed and > the second run of WlmServer::WlmDisconnect will enter the if and delete > mainConnection object for a second time, which will cause Kopete to crash. > > > This addresses bug 199580. > https://bugs.kde.org/show_bug.cgi?id=199580 > > > Diffs > ----- > > /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmserver.h 993925 > /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmserver.cpp 993925 > > Diff: http://reviewboard.kde.org/r/972/diff > > > Testing > ------- > > > Thanks, > > Lamarque > > _______________________________________________ kopete-devel mailing list kopete-devel@kde.org https://mail.kde.org/mailman/listinfo/kopete-devel