Bug 160805

Summary: "Service messages" icon bug
Product: [Unmaintained] kopete Reporter: benedict <benedict>
Component: generalAssignee: Kopete Developers <kopete-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Debug patch
Crash fix
Crash fix

Description benedict 2008-04-13 23:58:27 UTC
Version:           0.50.50 (using 4.00.69 (KDE 4.0.69 >= 20080410), Gentoo)
Compiler:          x86_64-pc-linux-gnu-gcc
OS:                Linux (x86_64) release 2.6.22-gentoo-r9

Kopete quits (seems no crash, no warning and backtrace at least)  on few clicks on "Service messages" icon, placed in left side of statusbar.
Comment 1 Roman Jarosz 2008-04-14 11:49:28 UTC
Can you reproduce this? Was the service menu empty when it quits, which protocols do you use?
Thanks
Comment 2 benedict 2008-04-14 12:18:01 UTC
Yes, it's reproduceable.
1) I've this bug with oscar and oscar+jabber protocols
2) Seems service menu should be empty (i've clicked "green flag" icon some times and kopete dont't quits)
3) Not shure that it's helps, but i've runned kopete from console and save tail of log before it's quit:

benedict@morgan ~ $ kopete

.............. 

kopete(12530)/kopete (oscar - raw protocol) Client::nextICQAwayMessageRequest: request queue count  19
kopete(12530)/kopete (oscar - raw protocol) Client::requestICQAwayMessage: requesting away message for  "335214503"
kopete(12530)/kopete (oscar - raw protocol) SendMessageTask::addChannel2Data: Trying to send channel 2 message!
kopete(12530)/kopete (oscar - raw protocol) SendMessageTask::onGo: SENDING:  "

"
kopete(12530)/kopete (oscar - raw protocol) Task::done:
kopete(12530)/kopete (oscar - raw protocol) Task::done: emitting finished
kopete(12530)/kopete (oscar - raw protocol) CoreProtocol::addIncomingData: Received  36  bytes.
kopete(12530)/kopete (oscar - raw protocol) SnacProtocol::parse: family:  4  subtype:  12  flags:  0  id:  6146
kopete(12530)/kopete (oscar - raw protocol) Connection::distribute: root task refused transfer
kopete(12530)/kopete (oscar - raw protocol) CoreProtocol::addIncomingData: Received  669  bytes.
kopete(12530)/kopete (oscar - raw protocol) SnacProtocol::parse: family:  4  subtype:  11  flags:  0  id:  2431083430
kopete(12530)/kopete (oscar - raw protocol) MessageReceiverTask::take: icbm cookie is  "72da49d05603317d"
kopete(12530)/kopete (oscar - raw protocol) MessageReceiverTask::take: channel is  2
kopete(12530)/kopete (oscar - raw protocol) MessageReceiverTask::handleAutoResponse: Received auto response. Trying to handle it...
kopete(12530)/kopete (oscar - raw protocol) MessageReceiverTask::handleAutoResponse: Reason code (1 - channel not supported, 2 - busted payload, 3 - channel specific data):  3
kopete(12530)/kopete (oscar - raw protocol) MessageReceiverTask::parseRendezvousData: Message type is:  26
kopete(12530)/kopete (oscar - raw protocol) Client::receivedMessage: Received an plugin message response.
kopete(12530) OscarStatusManager::onlineStatusOf: Creating Kopete::OnlineStatus for XStatus, internal status:  184553478
kopete(12530)/kopete (oscar/aim) OscarContact::setAwayMessage: Called for ' "335214503" ', away msg=' "" '
QPixmap: Invalid pixmap parameters
QPainter::begin: Cannot paint on a null pixmap
QPixmap: Invalid pixmap parameters
QPainter::begin: Cannot paint on a null pixmap
QPixmap: Invalid pixmap parameters
QPainter::begin: Cannot paint on a null pixmap
QPixmap: Invalid pixmap parameters
QPainter::begin: Cannot paint on a null pixmap
QPixmap: Invalid pixmap parameters
QPainter::begin: Cannot paint on a null pixmap

benedict@morgan ~ $ 
Comment 3 Roman Jarosz 2008-04-14 12:41:02 UTC
I can click as many times as I want and as fast as I want and it doesn't quit :(
Which gcc version do you use, because I saw some crashes with 4.2.2 on my gentoo in KDE 4.

You can try to recompile Kopete and see if it helps or run kopete from gdb
"gdb --args kopete --nofork" and when it quits maybe you will get some info or backtrace with "bt" command in gdb
Comment 4 benedict 2008-04-14 13:47:51 UTC
1) gcc: morgan@morgan ~ $ gcc-config -l
[1] x86_64-pc-linux-gnu-4.1.2 *

2) tail of gdb log and top part of backtrace (runned as "gdb --args kopete --nofork"):

QPixmap: Invalid pixmap parameters                                                                                                                           
QPainter::begin: Cannot paint on a null pixmap                                                                                                               

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2afea632a9c0 (LWP 15896)]    
0x00002afe9d162469 in KIconLoader::loadIcon (this=0x72fcf0, _name=@0x69c760, group=KIconLoader::Desktop, size=-1, state=2, overlays=@0x7a4998, 
    path_store=0x0, canReturnNull=false) at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp:886       
886     /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp: No such file or directory.                   
        in /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp                                            
(gdb) bt                                                                                                                                       
#0  0x00002afe9d162469 in KIconLoader::loadIcon (this=0x72fcf0, _name=@0x69c760, group=KIconLoader::Desktop, size=-1, state=2, overlays=@0x7a4998, 
    path_store=0x0, canReturnNull=false) at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp:886           
#1  0x00002afe9d163cf8 in KIconLoader::loadIcon (this=0x72fcf0, _name=@0x69c760, group=KIconLoader::Desktop, size=-1, state=2, overlays=@0x7a4998,
    path_store=0x0, canReturnNull=false) at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp:1028
#2  0x00002afe9d163cf8 in KIconLoader::loadIcon (this=0x72fcf0, _name=@0x69c760, group=KIconLoader::Desktop, size=-1, state=2, overlays=@0x7a4998,
    path_store=0x0, canReturnNull=false) at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp:1028
#3  0x00002afe9d163cf8 in KIconLoader::loadIcon (this=0x72fcf0, _name=@0x69c760, group=KIconLoader::Desktop, size=-1, state=2, overlays=@0x7a4998,
    path_store=0x0, canReturnNull=false) at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/icons/kiconloader.cpp:1028

and below more than 2000 lines like #3


Looks like kdelibs problem ..
Comment 5 Roman Jarosz 2008-04-14 14:23:27 UTC
Yes, it looks like kdelibs problem because I think that KIconLoader::loadIcon can go into infinite loop. Do you see all icons in service widget or are any missing? (http://kedge.wz.cz/kopete/servicemenu.png)
Comment 6 benedict 2008-04-14 14:38:55 UTC
I see all icons, exactly like on your screenshot. Additionly, i've noted that problem appears on CLOSING service menu: on first click it's opens, with all icons on right places, on second click it's crashes (sometime crash appears on next few open/close clicks)
Comment 7 Roman Jarosz 2008-04-15 15:40:18 UTC
Created attachment 24339 [details]
Debug patch

Can you apply this patch to kdelibs and recompile it (kdelibs should be enough)

and then attach the Kopete console log when it crashes.
Thanks
Comment 8 benedict 2008-04-15 18:17:27 UTC
well, i've patched kdelibs and saved console log http://rapidshare.com/files/107724784/kopete_crash_log.tar.bz2.html
hope it will help :)

(unfortunately i'm don't know how to create attachments here :)
Comment 9 Roman Jarosz 2008-04-15 19:30:09 UTC
Created attachment 24343 [details]
Crash fix

This patch should fix the crash, but I still don't know why the icon with size
-1 is requested. Let me know if it helps.
Comment 10 Roman Jarosz 2008-04-15 19:45:57 UTC
Created attachment 24344 [details]
Crash fix

Here's a patch with full svn patch so you can use it in portage
Comment 11 benedict 2008-04-15 20:15:36 UTC
Thnak you, it's looks like last patch cure a bug (and speeds up kopete too, subjectively). Seems it's resolved? 
Comment 12 Roman Jarosz 2008-04-15 21:52:52 UTC
SVN commit 797415 by rjarosz:

Somehow icon size can be -1 in this case return null pixmap.

BUG: 160805



 M  +3 -0      kiconloader.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=797415