Summary: | Kopete crash Bonjour login | ||
---|---|---|---|
Product: | [Unmaintained] kopete | Reporter: | Artur Souza (MoRpHeUz) <asouza> |
Component: | Bonjour Plugin | Assignee: | Kopete Developers <kopete-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andreac81, andresbajotierra, anselmolsm, christian.blaicher, james, sebastian, tejasdinkar |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | possible fix for seg faulting |
Description
Artur Souza (MoRpHeUz)
2009-05-08 23:50:15 UTC
Yes, one of the other clients does something which crashes bonjour. Arthur, can you tell me the other bonjour clients which are running on your lan? Running "avahi-browse -rt _presence._tcp" and pasting the output here would be helpful This seems to be a duplicate of bug 177487 (same situation, *same* backtrace) However as Tejas Dinkar already asked here I'm not going to mark it. Thanks Hi Tejas, this is the output of the command you requested: eth0 IPv6 anselmolsm@skadi iChat Presence local + eth0 IPv4 anselmolsm@skadi iChat Presence local + eth0 IPv4 luwolf@bobesponja iChat Presence local + eth0 IPv4 Marcelo "Setanta"@lovecraft iChat Presence local + eth0 IPv4 Marcelo Setanta@azevedo iChat Presence local + eth0 IPv4 patifa@Patifa iChat Presence local + eth0 IPv4 Etrunko@etrunko-desktop iChat Presence local = eth0 IPv6 anselmolsm@skadi iChat Presence local hostname = [skadi.local] address = [fe80::21e:37ff:fe84:51e2] port = [5298] txt = ["ver=0.0.1" "vc=!" "txtvers=1" "status=avail" "port.p2pj=5298" "node=kopete" "last" "email=anselmo.lacerda@domain.org" "1st=Anselmo"] = eth0 IPv4 anselmolsm@skadi iChat Presence local hostname = [skadi.local] address = [192.168.5.44] port = [5298] txt = ["ver=0.0.1" "vc=!" "txtvers=1" "status=avail" "port.p2pj=5298" "node=kopete" "last" "email=anselmo.lacerda@domain" "1st=Anselmo"] = eth0 IPv4 luwolf@bobesponja iChat Presence local hostname = [bobesponja.local] address = [192.168.4.62] port = [5298] txt = ["1st=Luciano" "port.p2pj=5298" "last=Wolf" "status=dnd" "txtvers=1" "email=lucianomw@domain.com" "nick=Luck" "phsh=b42187709a534f60867bca5fd212607f99185955" "msg=" "jid="] = eth0 IPv4 Marcelo "Setanta"@lovecraft iChat Presence local hostname = [lovecraft.local] address = [192.168.5.166] port = [5298] txt = ["nick=setanta" "port.p2pj=5298" "email=marcelo.lira@domain.org" "jid=marcelo.lira@domain.org" "txtvers=1" "1st=Marcelo" "last=Lira" "msg=" "status=away"] = eth0 IPv4 Marcelo Setanta@azevedo iChat Presence local hostname = [azevedo.local] address = [192.168.5.126] port = [5298] txt = ["1st=Marcelo" "port.p2pj=5298" "last=Lira" "status=away" "txtvers=1" "email=marcelo.lira@domain.org" "nick=setanta" "phsh=5e9fc7c31062596717a1ce96d11b190565881587" "msg=" "jid=marcelo.lira@domain.org"] = eth0 IPv4 patifa@Patifa iChat Presence local hostname = [Patifa.local] address = [192.168.5.30] port = [5298] txt = ["last=Montenegro" "port.p2pj=5298" "msg=LRRTM1" "email=patricia.montenegro@domain.org" "AIM=pmontenegro@mac.com" "1st=Patricia" "jid=pmontenegro@domain.com" "vc=CUAV!" "phsh=bb77e1b350854721f4176f5ba2859f8e71f947e7" "status=avail" "txtvers=1"] = eth0 IPv4 Etrunko@etrunko-desktop iChat Presence local hostname = [etrunko-desktop.local] address = [192.168.4.54] port = [5298] txt = ["msg=" "1st=Eduardo" "txtvers=1" "port.p2pj=5298" "status=avail" "last=Lima" "nick=Etrunko"] Was this bug fixed? Can you guys recheck it? I had this problem in the past, but now It's working here: kopete r992849 KDE trunk: r992924 - 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090706)) qt from kde-qt: fad3c7 avahi-0.6.25 on gentoo linux - 2.6.29-tuxonice-r3 SVN commit 1000243 by dinkar: Added explicit constructors for objects in classes in Bonjour This should fix the ugly segfaulting that has been happening for some people. (see the bug list below). CCBUG: 177487 CCBUG: 192087 M +2 -6 bonjouraccount.cpp M +6 -5 bonjouraddcontactpage.h M +2 -19 bonjourcontact.cpp M +1 -6 bonjourcontact.h M +2 -4 bonjourcontactconnection.cpp M +0 -1 bonjoureditaccountwidget.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1000243 Fixed here. Thanks :) *** Bug 205961 has been marked as a duplicate of this bug. *** @Tejas Dinkar: it seems the fix was not backported to 4.3.x; can it be done ? Thanks The patch was backported (1000246), but it still doesn't seem to fix anything. This is a really really dodgy bug. I'd appreciate ANY help on this, even if it is just figuring out what causes it. *** Bug 207112 has been marked as a duplicate of this bug. *** Check bug 207489 for an updated backtrace of this crash on 4.3.68. Thanks *** Bug 207489 has been marked as a duplicate of this bug. *** Created attachment 37525 [details]
possible fix for seg faulting
I am experiencing this problem under fedora, even with the above mentioned revision 1000243.
It appears to seg fault still when the new metacontact already exists, so the bonjour contact gets appended to the existing metacontact, and then bonjouraccount.cpp just grabs the first one and casts it to BonjourContact (but the first contact in the metacontact happens to be a jabber contact).
Here i've used findContact instead. The comment above it *appears* to relate to the hack so i've removed it also.
Can somebody confirm that this is an appropriate fix (especially considering the comment that I removed), and then i'll commit it to trunk (i've only tested on the source rpm that cames from fedora, but from my zero experience inside kopete, I don't foresee any problems).
Cheers
James
Although I'm not entirely sure that patch will fix this particular bug, that patch is very useful in fixing a hack I did when I first wrote the plugin (and the behaviour of kopete was slightly different in that it didn't club people with the same name). Please commit SVN commit 1034486 by hogan: Fix kopete bonjour plugin handling of new contact added to existing metacontact. When a bonjour contact becomes visible for whom a metacontact already exists, it would try and cast the first contact in the metacontact to BonjourContact even if it was for example a JabberContact, resulting in a segfault. The fix uses mc->findContact to find the new contact without making assumptions about it's position inside the metacontact. CCBUG: 177487 CCBUG: 192087 M +4 -3 bonjouraccount.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1034486 Bug 212983 is really similar but it has "BonjourContact::setremoteHostName" instead of "BonjourContact::setremoteAddress". @James: did your commit fixed this ? Should the report be closed ? Thanks *** Bug 212983 has been marked as a duplicate of this bug. *** @Dario: My commit fixed the problem for me, and the symptoms originally described do match the problem fixed by the commit, but i haven't had any confirmation that it has definitely fixed it for others. I would say the report can be closed. Ok, closing as FIXED. Please reopen this report if you experience those crashes with KDE SC 4.4+ If i remember right, the actual function that it seg faulted in (BonjourContact::setremoteHostname or whatever), could vary, as the problem was that it was treating a different type of contact (e.g. a JabberContact) as a BonjourContact. Then I guess it is the same. Thanks for the explanation :) This bug has haunted me for about two years now :-(. I hope this fixed it. In any case, for some reason the segfault always happened in the operator= method of QString. I hope this bug is never reopened! |