Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#8594 closed defect (fixed)

msn connection crash

Reported by: plaes Owned by: khc
Milestone: 2.5.6 Component: MSN
Version: 2.5.5 Keywords:
Cc: Dimmuxx, fqueze

Description

Pidgin crashes once in a while when using MSN protocol. Started happening after upgrading to 2.5.5

Attachments (1)

pidgin-vearaport.txt (9.4 KB) - added by plaes 10 years ago.
pidgin-backtrace.txt

Download all attachments as: .zip

Change History (28)

Changed 10 years ago by plaes

pidgin-backtrace.txt

comment:1 Changed 10 years ago by khc

Ticket #8664 has been marked as a duplicate of this ticket.

comment:2 Changed 10 years ago by datallah

Ticket #8797 has been marked as a duplicate of this ticket.

comment:3 Changed 10 years ago by jayrusman

Please fix soon ... losing all away messages while leaving Pidgin running over night is a killer!

comment:4 Changed 10 years ago by khc

can you get a debug log?

comment:5 Changed 10 years ago by jayrusman

There's a backtrace attached to this and my dup #8797 what more do you need? Not sure what a debug log is, all I know is Pidgin is unusable as is. Is it true the previous version doesn't crash? I'll downgrade if I can

comment:6 Changed 10 years ago by khc

  • Status changed from new to pending

Please follow the instructions to get a debug log and attach it to this ticket.

comment:7 Changed 10 years ago by plaes

  • Status changed from pending to new

Replying to khc:

can you get a debug log?

Getting the debug log is a bit hard, because these crashes happen at random times often once every week... But I'll try...

Also, when looking at the bug reports there are two patterns (so we might have actually two different issues here). Also, I'm using 2.5.5 tarball for the sources:

  • #8594 and #8664 - crash happens at line 511 in soap.c
    [snip]
    507:        perrno = errno;
    508:        if (cnt < 0 && perrno != EAGAIN)
    509:                purple_debug_info("soap", "read: %s\n", g_strerror(perrno));
    510:
    511:        if (conn->current_request && conn->current_request->secure &&
    512:                !conn->unsafe_debug)
    513:                purple_debug_misc("soap", "Received secure request.\n");
    514:        else if (count != 0)
    515:                purple_debug_misc("soap", "current %s\n", conn->buf->str + cursor);
    [/snip]
    

Now when checking the locals in this function: ( #8594 / #8664 ):

  • perrno = 11 / 11 (EAGAIN error)
  • count = 0 / 0
  • cnt = 0 / ???
  • cursor = 13522224 / 0
  • #8797 and one of my last crashes happen at line 500 in soap.c
    [snip]
    496:        if (conn->buf == NULL) {
    497:                conn->buf = g_string_new_len(buf, 0);
    498:        }
    499:
    500:        cursor = conn->buf->len;
    501:        while ((cnt = purple_ssl_read(conn->ssl, buf, sizeof(buf))) > 0) {
    502:                purple_debug_info("soap", "read %d bytes\n", cnt);
    [/snip]
    

Here the conn->buf seems to be botched for some reason (so we might check whether conn->buf->len really exists or better yet, find the cause why it is b0rked (a big fat assert for debugging :P). As most of the data in the backtrace seems to be optimized out, I cannot speculate further...

And of course the something else I spotted:

489:         char buf[16 * 1024];
...
497:                conn->buf = g_string_new_len(buf, 0);

Why not use GString and / or g_string_sized_new?

comment:8 Changed 10 years ago by jayrusman

"All other (non-Windows) OS users
Get a backtrace"

But I already generated a backtrace on Linux. How to I build a debug client on Linux?
./configure [...]
Or is this only supported on Windows (say it ain't true!)

comment:9 Changed 10 years ago by jayrusman

I got it:
--enable-debug

comment:10 Changed 10 years ago by khc

no, all you need to do is run pidgin -d > debug.log 2>&1

comment:11 follow-up: Changed 10 years ago by khc

plaes: are you using nss or gnutls?

comment:12 in reply to: ↑ 11 Changed 10 years ago by plaes

Replying to khc:

plaes: are you using nss or gnutls?

GnuTLS

comment:13 Changed 10 years ago by khc@…

  • Milestone set to 2.6.0
  • Resolution set to fixed
  • Status changed from new to closed

(In 881df138362222308d7b078687b7576861609e9c):
fixes a race condition, probably Fixes #8594 and maybe others

comment:14 Changed 10 years ago by QuLogic

Ticket #8849 has been marked as a duplicate of this ticket.

comment:15 Changed 10 years ago by darkrain42

Ticket #8894 has been marked as a duplicate of this ticket.

comment:16 Changed 10 years ago by darkrain42

Ticket #8684 has been marked as a duplicate of this ticket.

comment:17 Changed 10 years ago by khc

Ticket #8868 has been marked as a duplicate of this ticket.

comment:18 Changed 10 years ago by darkrain42

Ticket #8653 has been marked as a duplicate of this ticket.

comment:19 Changed 10 years ago by darkrain42

Ticket #8125 has been marked as a duplicate of this ticket.

comment:20 Changed 10 years ago by khc

Ticket #8942 has been marked as a duplicate of this ticket.

comment:21 Changed 10 years ago by khc

Ticket #8925 has been marked as a duplicate of this ticket.

comment:22 Changed 10 years ago by darkrain42

Ticket #9010 has been marked as a duplicate of this ticket.

comment:23 Changed 10 years ago by darkrain42

Ticket #9029 has been marked as a duplicate of this ticket.

comment:24 Changed 10 years ago by khc

Ticket #9059 has been marked as a duplicate of this ticket.

comment:25 Changed 10 years ago by darkrain42

  • Milestone changed from 2.6.0 to 2.5.6

comment:26 Changed 10 years ago by QuLogic

Ticket #9125 has been marked as a duplicate of this ticket.

comment:27 Changed 10 years ago by khc

Ticket #9193 has been marked as a duplicate of this ticket.

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!