[Pidgin] #6160: Lockup on Jabber connection close

Pidgin trac at pidgin.im
Tue Jun 24 06:42:42 EDT 2008


#6160: Lockup on Jabber connection close
--------------------------+-------------------------------------------------
Reporter:  jankratochvil  |       Owner:  seanegan   
    Type:  defect         |      Status:  new        
Priority:  minor          |   Component:  Google Talk
 Version:  2.3.1          |    Keywords:             
 Pending:  0              |  
--------------------------+-------------------------------------------------
 Pidgin sometimes hangs - eats 100% CPU but even does not refresh the X
 windows content (displayed as empty).
 Found out it is due to a TCP connection close to the Jabber server.
 Further found it is probably not a common problem as it occurs due to some
 connection problem (such as connection refused) which gets translated to a
 pure connection close by my local squid proxy (which cannot transfer the
 connection errors to its clients).
 I have lousy connections sometimes over GPRS or unreliable WiFi etc. which
 may explain the connection errors resulting in the Pidgin hangs.

 I do not have certainity it really fixed the problem of mine but surely
 there is a bug in this part of the code. And I expect it is the cause as
 it had this backtrace during the busylooping before:

 {{{
 #0  pt_Recv (fd=<value optimized out>, buf=<value optimized out>,
 amount=<value optimized out>, flags=<value optimized out>,
     timeout=<value optimized out>) at
 ../../../mozilla/nsprpub/pr/src/pthreads/ptio.c:1822
 #1  0x0000003b3dc181ad in ssl_DefRecv (ss=<value optimized out>,
 buf=<value optimized out>, len=<value optimized out>,
     flags=<value optimized out>) at ssldef.c:94
 #2  0x0000003b3dc1341a in ssl3_GatherCompleteHandshake (ss=<value
 optimized out>, flags=<value optimized out>)
     at ssl3gthr.c:90
 #3  0x0000003b3dc135ca in ssl3_GatherAppDataRecord (ss=<value optimized
 out>, flags=<value optimized out>) at ssl3gthr.c:235
 #4  0x0000003b3dc1c547 in ssl_SecureRecv (ss=<value optimized out>,
 buf=<value optimized out>, len=<value optimized out>,
     flags=<value optimized out>) at sslsecur.c:552
 #5  0x0000003b3dc204e1 in ssl_Read (fd=<value optimized out>, buf=<value
 optimized out>, len=<value optimized out>)
     at sslsock.c:1467
 #6  0x00007fc16a173b02 in ssl_nss_read (gsc=<value optimized out>,
 data=0x7fc162e06798, len=5) at ssl-nss.c:361
 #7  0x00007fc169905bf4 in jabber_recv_cb_ssl (data=0x7fc1640ff240,
 gsc=0x7fc162e35510, cond=<value optimized out>)
     at jabber.c:437
 #8  0x000000000046933e in pidgin_io_invoke (source=<value optimized out>,
 condition=<value optimized out>,
     data=0x7fc162dae820) at gtkeventloop.c:78
 #9  0x0000003b93a3749b in IA__g_main_context_dispatch (context=<value
 optimized out>) at gmain.c:2009
 #10 0x0000003b93a3ac7d in g_main_context_iterate (context=<value optimized
 out>, block=<value optimized out>,
     dispatch=<value optimized out>, self=<value optimized out>) at
 gmain.c:2642
 #11 0x0000003b93a3b1ad in IA__g_main_loop_run (loop=<value optimized out>)
 at gmain.c:2850
 #12 0x0000003bac183a98 in IA__gtk_main () at gtkmain.c:1163
 #13 0x0000000000481f5b in main (argc=1, argv=0x7fff7a429dc8) at
 gtkmain.c:890
 }}}

 jabber_recv_cb_ssl gets there LEN set to 0 but accidentally ERRNO is that
 time accidentally EAGAIN, probably from some other call before.

 Problem happened on: pidgin-2.4.2-1.fc9.x86_64
 Testing build available at:

 http://koji.fedoraproject.org/koji/taskinfo?taskID=677687

 http://koji.fedoraproject.org/scratch/jkratoch/task_677687/

-- 
Ticket URL: <http://developer.pidgin.im/ticket/6160>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list