Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#12988 closed defect (fixed)

Persistent Status (Will Not Revert to Default 'Available') in AIM Protocol

Reported by: jnshk Owned by: ivan.komarov
Milestone: 2.7.8 Component: AIM
Version: 2.7.7 Keywords: status statuses persistent AIM
Cc: jemaltz, Seanathan

Description

Operating System: Windows 7 Home Premium 64-bit
Pidgin Version: 2.7.7 w/ all plugins disabled

I recently noticed that statuses remain persistent on AIM accounts when reverting to the default "Available" status (either by clearing the current status or by clicking the "Available" mode button and not entering any text).

A workaround is to manually type "Available" as the status message, but this is not optimal.

This issue only seems to affect the AIM protocol, to my knowledge. I can confirm that on my system it does not affect Yahoo or MSN.

Additionally, I don't recall this behavior occurring with Pidgin 2.7.4 but I can't say with certainty that it did not.

Attachments (3)

persistent_status.jpg (220.2 KB) - added by jnshk 9 years ago.
Screenshot of persistent status bug
purple-status_message_stays-v.log (1.7 KB) - added by dustin 9 years ago.
debug log: buddy changing from available status to unavailable and back
purple-status_message_with2.7.7-works_again.log (1.6 KB) - added by dustin 9 years ago.
debug log: buddy changing from available status to unavailable and back (pidgin-2.7.7); works now. (cmp. purple-status_message_stays-v.log from 29 Nov 2010)

Download all attachments as: .zip

Change History (17)

Changed 9 years ago by jnshk

Screenshot of persistent status bug

comment:1 Changed 9 years ago by Kufat

I'm also experiencing this issue. I investigated a bit, and the problem is that pidgin will update the buddy's status if it's changed, but won't update if the status is cleared. In other words, this occurs if anybody on one's buddy list sets a status and then clears it; it's just most obvious if that person is also the person using Pidgin (and viewing their own status.)

If a youtube video from a screen recorder would be of use in clarifying this, please let me know (on AIM, my SN is Kufat, or my username at my username dot net) and I'll record one.

comment:2 Changed 9 years ago by dustin

Same thing here. Only affects my ICQ accounts, not XMPP. It's a bit annoying, esp. because the "I'm not here..." message stays when somebody returns to status 'available' (if the status message field is empty).

This still worked in 2.7.4, but no longer in 2.7.5 and above.

AFAICS libpurple expects an empty string in this case, but only gets a NULL. (see attached purple-status_message_stays-v.log)

Changed 9 years ago by dustin

debug log: buddy changing from available status to unavailable and back

comment:3 Changed 9 years ago by MarkDoliner

  • Owner changed from MarkDoliner to ivan.komarov

Ivan, any ideas?

comment:4 Changed 9 years ago by Seanathan

I'm having this issue as well.. I don't have an ICQ account but it certainly affects my AIM accounts. I've tried with my usual setup (plugins and settings) as well as after a full delete of all Pidgin-related files and settings.

As dustin said above, this bug was introduced in the 2.7.5 release. The feature was working as expected in 2.7.4 and below.

comment:5 Changed 9 years ago by rhanneken

I just upgraded from 2.7.4 yesterday, and I had the same issue before I upgraded. What's more, today my brother and I experienced the same problem while using Meebo. I think something changed on the AOL side.

When I sign in, my available buddies don't appear to have an away message. When an available buddy goes away, his status and message are updated for me. When he comes back, his status is updated for me, but his message is not cleared.

comment:6 Changed 9 years ago by rhanneken

An update: I just reproduced the problem while I was using Adium 1.4.1 and my brother was using Meebo. When I went away and came back, my brother saw my status get updated appropriately, but my away message was not cleared. When he went away and came back, I saw his status get updated appropriately, but his away message was not cleared.

To recap, I've reproduced this problem using Pidgin 2.7.4, Pidgin 2.7.7, Adium 1.4.1, and the current version of Meebo. I think AOL changed something.

comment:7 Changed 9 years ago by rhanneken

Someone reported the same problem to Adium's Trac system yesterday. See Adium Ticket #14826.

comment:8 Changed 9 years ago by markdoliner@…

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

(In f6d37fafbb5ebe21254edb345e53078feb9e7cba):
I tested with AIM 7.2.6.1 and ICQ 7.2 build 3159 and both of them send no status message to indicate that the status message has been cleared. So it really seems like this comment and this behavior is incorrect.

This fixes #12988. I haven't noticed any side effects yet. The side effect I'm worried about is that maybe we'll clear someone's status message when we shouldn't (because we receive a userinfo packet without a status message for whatever reason)

comment:9 Changed 9 years ago by Seanathan

I'm not sure if anyone else can confirm this, but it seems like while the patch seems to have resolved the issue server-side.. the mouse-over tooltip for the AIM screen name in Pidgin still shows the status that was just cleared.

To clarify, I set my status via Pidgin to something other than the default "Available" -- and then changed it back to "Available." While watching from the official AIM client, the issue seems to be fixed.. but when I mouse over my screen name in the pre-2.7.8 Pidgin, I still see the previous status message.

Not that it's a very big issue, but in the spirit of consistency I figured I'd let you know.

comment:10 Changed 9 years ago by deryni

If you are reporting that versions 2.7.7 and earlier still do not clear the listed status in the buddy list/tooltip then that is as expected (as I understand the issue here and the fix) the fix was to how pidgin interpret incoming status change notifications so it will not have changed already existing versions of pidgin.

If you are reporting that a fixed version of pidgin (from monotone) correctly clears the buddy list display but does not clear the tooltip that is a different issue and one that should be looked into.

comment:11 Changed 9 years ago by Seanathan

The latter is what I'm saying. When I said pre-2.7.8 I should've clarified that I meant post-2.7.7 as in the current code that's being worked on.

comment:12 Changed 9 years ago by dustin

I can confirm this, also since pidgin 2.7.5, including 2.7.8devel.

An empty status message now gets updated in the buddy list, but not for the tooltip and the buddy info window. Somehow userinfo->status is not updated.

comment:13 Changed 9 years ago by dustin

Some more observations about this issue:

The problem with old status messages staying doesn't occur any more for some days now, so everything is ok with pidgin 2.7.4, 2.7.5-2.7.7 and 2.7.7 with Mark's patch applied.

It seems like there has been a change on the server. I no longer get an (info->status == NULL) when becoming available again, as was the case before (see purple-status_message_with2.7.7-works_again.log).

However, the problem with old status messages still does occur in 2.7.8devel: The old message remains in the buddy info window (and buddy list tooltip).

I think that's because of this line in aim_info_extract():

--- pidgin-2.7.7clean/libpurple/protocols/oscar/family_locate.c	2010-12-14 20:05:07.000000000 +0100
+++ pidgin-2.7.8devel_clean/libpurple/protocols/oscar/family_locate.c	2010-12-14 20:56:22.000000000 +0100
@@ -1043,7 +1043,7 @@
 						} else {
 							byte_stream_advance(bs, length2);
 							outinfo->status_len = 0;
-							outinfo->status = g_strdup("");
+							outinfo->status = NULL;
 							outinfo->status_encoding = NULL;
 						}
 					} break;

Setting outinfo->status = NULL is ambiguous to aim_locate_adduserinfo(), actually meaning that status should not be updated.

Also, looking at lines 1030-1050, I get the suspicion the bug was not so much the server sending a NULL, nor anything introduced into 2.7.5 (Also a NULL/nothing would have been interpreted as an empty string).

It rather seems byte_stream_getstr() gave us a NULL for a mismatch in string length (which is now corrected?).

Changed 9 years ago by dustin

debug log: buddy changing from available status to unavailable and back (pidgin-2.7.7); works now. (cmp. purple-status_message_stays-v.log from 29 Nov 2010)

comment:14 Changed 9 years ago by MarkDoliner

dustin: That was exactly the cause. I reverted my b3be51b1008b426760ae04ce7487b089440bdeeb (the diff you posted earlier) and checked it in. Should be fixed now in im.pidgin.pidgin. Thanks, guys!

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!