Bug 135778

Summary: gaim consistently hangs on exit on with jabber/ssl
Product: [Fedora] Fedora Reporter: Colin Walters <walters>
Component: gaimAssignee: Ivana Varekova <varekova>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: eblanton, lschiere+bugs, mark, stu, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-29 05:40:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 136452    

Description Colin Walters 2004-10-14 23:38:46 UTC
Description of problem:

I have a jabber account that uses SSL.  I'm using an em64t machine
(x86_64).  Gaim hangs consistently when I try to exit it.  I have a
feeling this has something to do with x86_64 because it worked fine on
my laptop (i386).  When I get it back I'll double-check.

#0  0x0000002a975b9c24 in recv () from /lib64/tls/libc.so.6
#1  0x0000002a9ebe2408 in _gnutls_record_buffer_get ()
   from /usr/lib64/libgnutls.so.11
#2  0x0000002a9ebe292d in _gnutls_io_read_buffered ()
   from /usr/lib64/libgnutls.so.11
#3  0x0000002a9ebe0300 in _gnutls_recv_int () from
#4  0x0000002a9ebe10bd in gnutls_bye () from /usr/lib64/libgnutls.so.11
#5  0x0000002a9eaaf254 in ?? () from /usr/lib64/gaim/ssl-gnutls.so
#6  0x000000552ab05548 in gaim_ssl_close () from /usr/bin/gaim
#7  0x0000002a9fd5c23c in jabber_register_start ()
   from /usr/lib64/gaim/libjabber.so
#8  0x000000552aaff0e7 in serv_close () from /usr/bin/gaim
#9  0x000000552aae2da2 in gaim_connection_disconnect () from /usr/bin/gaim
#10 0x000000552aae3895 in gaim_connections_disconnect_all () from
#11 0x000000552aaea43c in gaim_core_quit () from /usr/bin/gaim
#12 0x0000002a96e0cfaa in g_closure_invoke ()
   from /usr/lib64/libgobject-2.0.so.0
#13 0x0000002a96e2258a in g_signal_has_handler_pending ()
   from /usr/lib64/libgobject-2.0.so.0
#14 0x0000002a96e23d36 in g_signal_emit_valist ()
   from /usr/lib64/libgobject-2.0.so.0
#15 0x0000002a96e24083 in g_signal_emit () from
#16 0x0000002a9636e71f in gtk_widget_activate ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#17 0x0000002a96292f77 in gtk_menu_shell_activate_item ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#18 0x0000002a962932a3 in gtk_menu_shell_activate_item ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#19 0x0000002a96283d66 in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#20 0x0000002a96e0cfaa in g_closure_invoke ()
   from /usr/lib64/libgobject-2.0.so.0
#21 0x0000002a96e21f1c in g_signal_has_handler_pending ()
   from /usr/lib64/libgobject-2.0.so.0
#22 0x0000002a96e2399d in g_signal_emit_valist ()
   from /usr/lib64/libgobject-2.0.so.0
#23 0x0000002a96e24083 in g_signal_emit () from
#24 0x0000002a9636e880 in gtk_widget_activate ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#25 0x0000002a96281d4e in gtk_propagate_event ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#26 0x0000002a962820d5 in gtk_main_do_event ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#27 0x0000002a965b2b40 in gdk_event_get_graphics_expose ()
   from /usr/lib64/libgdk-x11-2.0.so.0
#28 0x0000002a971726bd in g_main_context_dispatch ()
   from /usr/lib64/libglib-2.0.so.0
#29 0x0000002a97174397 in g_main_context_acquire ()
#30 0x0000002a97174735 in g_main_loop_run () from
#31 0x0000002a96281531 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#32 0x000000552ab618b2 in main () from /usr/bin/gaim

How reproducible:

Steps to Reproduce:
1. Start gaim, use jabber account with ssl
2. Try to quit

Comment 1 Warren Togami 2004-10-31 08:57:00 UTC
Perhaps this is a gnutls problem?  We only recently switched from
mozilla-nss to gnutls for gaim's encryption capabilities.  Does it
work if you rebuild gaim with the boolean for gnutls/mozilla-nss
flipped (see near top of .spec)?

Comment 2 Colin Walters 2004-11-04 18:08:44 UTC
I've confirmed this happens on my ia32 laptop too.  The backtrace is slightly

(gdb) bt
#0  0xf6f147a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0xf684df41 in recv () from /lib/tls/libc.so.6
#2  0xf57facab in _gnutls_record_buffer_get () from /usr/lib/libgnutls.so.11
#3  0xf57fb2a9 in _gnutls_io_read_buffered () from /usr/lib/libgnutls.so.11
#4  0xf57f8857 in _gnutls_recv_int () from /usr/lib/libgnutls.so.11
#5  0xf57f9753 in gnutls_bye () from /usr/lib/libgnutls.so.11
#6  0xf5862dc5 in ssl_gnutls_close (gsc=0xfffffe00) at ssl-gnutls.c:134
#7  0xf6f7da58 in gaim_ssl_close (gsc=0xf8bfdad0) at sslconn.c:183
#8  0xf58ced1b in jabber_close (gc=0xf8bda198) at jabber.c:749
#9  0xf6f78085 in serv_close (gc=0xf8bda198) at server.c:127
#10 0xf6f59735 in gaim_connection_disconnect (gc=0xf8bda198) at connection.c:241
#11 0xf6f4e2f5 in gaim_account_disconnect (account=0xf8bd96c8) at account.c:246
#12 0xf6f59688 in gaim_connection_disconnect (gc=0xf8bda198) at connection.c:228
#13 0xf6f598b5 in gaim_connection_destroy (gc=0xf8bda198) at connection.c:68
#14 0xf6f5a297 in gaim_connections_disconnect_all () at connection.c:528
#15 0xf6f61960 in gaim_core_quit () at core.c:116
#16 0xf69710ae in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#17 0xf6959347 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#18 0xf696e94e in g_signal_has_handler_pending () from /usr/lib/libgobject-2.0.so.0
#19 0xf69709bc in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#20 0xf6970c5a in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#21 0xf6c918e9 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#22 0xf6bad3c0 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#23 0xf6bad6ca in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#24 0xf6ba3ddd in gtk_menu_reorder_child () from /usr/lib/libgtk-x11-2.0.so.0
#25 0xf6b9de67 in gtk_marshal_VOID__UINT_STRING () from /usr/lib/libgtk-x11-2.0.so.0
#26 0xf69596b2 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#27 0xf6959347 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#28 0xf696f576 in g_signal_has_handler_pending () from /usr/lib/libgobject-2.0.so.0
#29 0xf6970613 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#30 0xf6970c5a in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#31 0xf6c91a75 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#32 0xf6b9c12b in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#33 0xf6b9c430 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#34 0xf6a62082 in gdk_event_get_graphics_expose () from /usr/lib/libgdk-x11-2.0.so.0
#35 0xf68f074b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#36 0xf68f21d2 in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#37 0xf68f247f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#38 0xf6b9b78e in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#39 0xf6fea7b9 in main (argc=1, argv=0xfeee9724) at main.c:911

Comment 3 Warren Togami 2005-01-08 11:01:51 UTC
Colin, could you please try the gaim package rebuilt using mozilla-nss rather
than gnutls and see if this behavior still exists?  You will find a simple
boolean toggle near the top of gaim.spec.

Comment 4 Warren Togami 2005-01-30 09:13:58 UTC
According to upstream gaim, this is a gnutls problem.  Reassigning.

Comment 5 Luke Schierer 2005-04-08 02:05:32 UTC
what was the output from gaim -d? was it "gnutls handshaking"?

Comment 6 Warren Togami 2005-04-29 05:40:07 UTC
Closing because we switched back to mozilla-nss in order to avoid gnutls issues.
 This is now only an upstream problem.

Comment 7 Terry Wilson 2005-06-06 20:20:51 UTC
I of course get the handshaking bug with my jabber server only with mozilla-nss.
 Works perfectly for me when using gaim compiled with gnutls.  So I guess the
question is, who do you like better?  Me or Colin.  :-)  I suppose I can always
maintain a private yum repository with gaim compiled with gnutls...