Bug 234399

Summary: gaim update crashes when changing status (regression -> beta6 update)
Product: [Fedora] Fedora Reporter: drago01
Component: gaimAssignee: Warren Togami <wtogami>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: urgent Docs Contact:
Priority: medium    
Version: 6CC: eblanton, jan.kratochvil, kengert, lschiere+bugs, mark, redhat-bugzilla, stu, wtogami
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: 2.0.1-1.fc6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-06-04 19:53:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
status.xml file in question
none
file with corrected accounts
none
Patch v1 none

Description drago01 2007-03-28 21:16:54 UTC
Description of problem:

The new gaim update is useless due to regressions.

Version-Release number of selected component (if applicable):

gaim-2.0.0-0.31.beta6.fc6

How reproducible:
Always!


Steps to Reproduce:
1. start gaim with an (icq?)account
2. change status to away (without typing a message) or to invisble
3. segfault
  
Actual results:

segfault

Expected results:

no segfault; should work like beta5 did

Additional info:

It wasn't easy to downgrade because it changed the account type from prpl-oscar
to prpl-icq which older gaim does not understand...
so its not easy for a user to find the problem and workaround it.
so this bug need to be fixed! 
btw why wasn't this package in updates testing?

Comment 1 Warren Togami 2007-03-28 22:38:50 UTC
BTW, what gaim plugins do you have installed?

Please try:
rpm -qa 'gaim*'

Then re-test gaim with those plugins removed. 
Any different?


Comment 2 drago01 2007-03-29 16:58:39 UTC
I deleted all extra plugins (only had gaim-libnotify installed).
I tryed to create a backtrace but as soon as it segfaults X hangs (only happens
when running inside gdb).
the last message showed that it is caused by a strcmp() call.
note: I am on x86_64 .. could this be because of this?

Comment 3 drago01 2007-04-01 12:23:13 UTC
any idea what I can do to debugg this?
when the crash happens I cannot do anything in X execpt moving my mouse...
when I change to a vt and kill the gdb process X works but I cannot get a
backtrace this way.
the backtrace created from a core file looks like this:
#0  0x0000003fbf2301b5 in raise () from /lib64/libc.so.6
#1  0x0000003fbf231b20 in abort () from /lib64/libc.so.6
#2  0x000000000046ec9c in main ()

which is useless....

Comment 4 drago01 2007-04-01 12:44:08 UTC
I solved the problem!
after deleting status.xml from .gaim and starting gaim 2 times the crashes stopped.

Comment 5 Jan Kratochvil 2007-04-02 14:15:38 UTC
(In reply to comment #3)
> the backtrace created from a core file looks like this:
> #0  0x0000003fbf2301b5 in raise () from /lib64/libc.so.6
> #1  0x0000003fbf231b20 in abort () from /lib64/libc.so.6
> #2  0x000000000046ec9c in main ()
> 
> which is useless....

* In general use `thread apply all bt' (not needed here as I see now).

* Check you have installed glibc-debuginfo, gaim-debuginfo and -debuginfo for
  any other library listed in the backtrace.

According to your dump there occured SIGSEGV (main() should not be there, there
should be sighandler() after you install gaim-debuginfo).

I believe the backtrace should get extended after supplying gaim-debuginfo.
If not it would be useful to send the core file at least to me privately.


Comment 6 Jan Kratochvil 2007-04-02 14:24:36 UTC
Sorry for the Hardware field typo.


Comment 7 drago01 2007-04-07 11:57:13 UTC
sorry I am busy right now... I still have the broken (the one from beta5)
status.xml file I will generate the backtrace when I have some time.

Comment 8 drago01 2007-04-09 06:49:32 UTC
this _is_ a bug. A app should not crash after a update. It should convert the
config files to the new format by itself.

Comment 9 drago01 2007-04-09 06:51:49 UTC
Created attachment 151945 [details]
status.xml file in question

here is the file (generated from beta5) that was coausing the crashes.

Comment 10 drago01 2007-04-09 06:54:04 UTC
Created attachment 151946 [details]
file with corrected accounts

Comment 11 Kai Engert (:kaie) (inactive account) 2007-04-29 02:33:14 UTC
I experience this crash, too, on my own system and on the system of a remote
friend where I have set up FC6.

I installed gaim-debuginfo and was able to get a stacktrace.
We seem to crash because strcmp is called with a NULL parameter.

#0  0x00b6bee8 in strcmp () from /lib/libc.so.6
#1  0x080d9024 in activate_currently_selected_status (status_box=0x98c1020) at
gtkstatusbox.c:2122
#2  0x080d9770 in remove_typing_cb (status_box=0x98c1020) at gtkstatusbox.c:2253
#3  0x037d5a16 in g_source_get_current_time () from /lib/libglib-2.0.so.0
#4  0x037d5442 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#5  0x037d841f in g_main_context_check () from /lib/libglib-2.0.so.0
#6  0x037d87c9 in g_main_loop_run () from /lib/libglib-2.0.so.0
#7  0x03abe554 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#8  0x080b300b in main (argc=1, argv=0xbfdc5c54) at gtkmain.c:817

(gdb) print gaim_status_type_get_id(sub_type)
$23 = 0x0
(gdb) print gaim_status_type_get_id(acct_status_type)
$24 = 0x96a1f28 "available"

strcmp(0, "available") => crash


Comment 12 Kai Engert (:kaie) (inactive account) 2007-04-29 02:35:50 UTC
  const GaimStatusType *sub_type = gaim_savedstatus_substatus_get_type(sub);
  if (!strcmp(gaim_status_type_get_id(sub_type),
                  gaim_status_type_get_id(acct_status_type)))


Comment 13 Kai Engert (:kaie) (inactive account) 2007-04-29 03:33:36 UTC
Created attachment 153724 [details]
Patch v1

This patch fixes the crash for me.
Successfully tested on both systems.
(No change to status.xml was necessary)

I'm include a changelog entry, feel free to change it again.

Comment 14 Stu Tomlinson 2007-06-04 19:53:40 UTC
This is fixed in Pidgin 2.0.1