purple-googlechat icon indicating copy to clipboard operation
purple-googlechat copied to clipboard

Pidgin crashes while trying to use plugin

Open torrentiality opened this issue 3 months ago • 9 comments

Hi, I am not a coder or a computer person of any sort, just a layperson struggling with an issue who created an account just for this, so please tell me if you need any additional info about, like, system specs or anything. I'm running this on Windows 10, btw.

Basically, the plugin stopped working a while ago. I've updated to the latest version of both it and Pidgin and the problem persists: if I open a chat window, type something, and hit send, Pidgin locks up and then eventually crashes. The debug menu shows the following error for every individual character typed in:

g_log: googlechat_conv_send_typing: assertion `conv_id' failed

Any ideas what's going on? Thanks!

torrentiality avatar Sep 07 '25 15:09 torrentiality

Oh no! Sorry that its crashing :(

Would you be able to get the crash report file from %appdata%\.purple\Pidgin.RPT and attach it to this issue? It should shed a bit more light on where its going wrong

EionRobb avatar Sep 07 '25 21:09 EionRobb

Error occured on Sunday, September 7, 2025 at 10:53:26.

Windows Version 10.0 Build 16299 

C:\Program Files (x86)\Pidgin\pidgin.exe caused an Access Violation at location 685e7e89 in module C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll Reading from location 39353034.

Registers:
eax=00000003 ebx=06de2d90 ecx=00000000 edx=39353030 esi=06784300 edi=ffffffea
eip=685e7e89 esp=005fd338 ebp=005fd338 iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010206

Call stack:
         C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll [2.28.8.0]
685E7E89 C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll  g_list_length
05027868 C:\Users\[user]\AppData\Roaming\.purple\plugins\libgooglechat.dll  purple_init_plugin
05027A34 C:\Users\[user]\AppData\Roaming\.purple\plugins\libgooglechat.dll  purple_init_plugin
0502B548 C:\Users\[user]\AppData\Roaming\.purple\plugins\libgooglechat.dll  purple_init_plugin
0502ABCE C:\Users\[user]\AppData\Roaming\.purple\plugins\libgooglechat.dll  purple_init_plugin
         C:\Program Files (x86)\Pidgin\libpurple.dll [2.14.12.0]
6CA45BB9 C:\Program Files (x86)\Pidgin\libpurple.dll  serv_send_im
6CA136D0 C:\Program Files (x86)\Pidgin\libpurple.dll  purple_conv_present_error
         C:\Program Files (x86)\Pidgin\pidgin.dll [2.14.12.0]
6D89D0E5 C:\Program Files (x86)\Pidgin\pidgin.dll  pidgin_connection_uninit
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll [2.28.8.0]
63A67590 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_value_peek_pointer
63A5BFA2 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_cclosure_marshal_VOID__VOID
63A452C2 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_closure_invoke
63A54B33 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_handler_disconnect
63A5B7DF C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit_valist
63A5BA76 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit_by_name
63A452C2 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_closure_invoke
63A54857 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_handler_disconnect
63A5B7DF C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit_valist
63A5B962 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll [2.16.6.0]
617A3819 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_button_clicked
617A4F70 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_button_new
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll [2.28.8.0]
63A452C2 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_closure_invoke
63A54237 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_handler_disconnect
63A5B7DF C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit_valist
63A5B962 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll [2.16.6.0]
617A3889 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_button_released
617A3A08 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_button_new
6185A262 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_marshal_BOOLEAN__VOID
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll [2.28.8.0]
63A452C2 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_closure_invoke
63A54512 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_handler_disconnect
63A5B614 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit_valist
63A5B962 C:\Program Files (x86)\Pidgin\Gtk\bin\libgobject-2.0-0.dll  g_signal_emit
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll [2.16.6.0]
61964553 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_widget_class_list_style_properties
61852C9A C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_propagate_event
61853C49 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_main_do_event
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgdk-win32-2.0-0.dll [2.16.6.0]
6C36CA7F C:\Program Files (x86)\Pidgin\Gtk\bin\libgdk-win32-2.0-0.dll  gdk_event_get_graphics_expose
         C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll [2.28.8.0]
685EB167 C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll  g_main_context_dispatch
685EB90D C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll  g_main_context_dispatch
685EBD9D C:\Program Files (x86)\Pidgin\Gtk\bin\libglib-2.0-0.dll  g_main_loop_run
         C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll [2.16.6.0]
61854260 C:\Program Files (x86)\Pidgin\Gtk\bin\libgtk-win32-2.0-0.dll  gtk_main

torrentiality avatar Sep 08 '25 15:09 torrentiality

Well, thats annoying that it just says purple_init_plugin instead of the actual function/line number in the dll. Just to check, you're grabbing the dll from https://github.com/EionRobb/purple-googlechat/releases ?

From what you're describing though, what might be happening under the hood, is that you're sending an IM to someone that the plugin doesn't know you've IM'd before, so it doesn't have the "conversation id" of the one-to-one IM window. (That error message for every character pressed is too noisy, so I'll tweak that too.) When you do send that message, it's supposed to try and find/create a conversation with that person, then send your message to them. There's a couple of different code paths that it can take to get to that point though:

When you are sending a message, are you sending it to someone existing in your buddy list, or are you going Buddies -> New Instant message, and typing in an email address?

One of those ways tries to do a lookup search for email address -> gaia id (which is a number that looks like "111523456700112233445566"), then create the conv id (which look like "AAaadhyzyuiz") and then send the message - so could be crashing at any of those points. I'll try replicate both ways and see if I can end up with the same issue.

EionRobb avatar Sep 08 '25 16:09 EionRobb

Pulled it straight from that link, yes.

I have to laugh because I've only IM'd one person using the plugin for years now so the fact that the program doesn't recognize the one singular person I employ it for... XD

They're on my buddy list; I open a new IM with a double click.

torrentiality avatar Sep 08 '25 17:09 torrentiality

They're on my buddy list; I open a new IM with a double click.

Ok, thanks! That helps narrow it down a lot :)

I'm guessing not, but was there anything in the debug log after "assertion `conv_id' failed"? was it just a plaintext message you're sending or did it have formatting (bold/italics/etc)?

I've just pushed through a new commit https://github.com/EionRobb/purple-googlechat/commit/3c1b9f87acf2058930287a83fa551d8df60281b8 that tries to tidy up the errors and potentially prevents the crash if you're able to test it?

Unfortunately I wasn't able to recreate - I tried sending to both to a new contact and an existing on on the buddy list that I hadn't chatted to before, and I couldn't get it to crash :(

EionRobb avatar Sep 08 '25 18:09 EionRobb

I'm not sure how I'd go about testing -- is there a new file to download? Again, absolute programming nonentity. ^^;

torrentiality avatar Sep 09 '25 01:09 torrentiality

Ah apologies. There's a new dll on the Releases page at https://github.com/EionRobb/purple-googlechat/releases/tag/nightly-653a6dde34e0f3e556ffb3b86c23d535f9a27d11

EionRobb avatar Sep 09 '25 02:09 EionRobb

Tried them, got the same issue. :( There's another error earlier on in the debug window (signals: Signal data for chat-conversation-typing not found!) and the end of the log is:

05:28:50) g_log: googlechat_conv_send_typing: assertion conv_id' failed <multiple of these, still (05:28:51) util: Writing file blist.xml to directory C:\Users\user\AppData\Roaming\.purple (05:28:51) util: Writing file C:\Users\user\AppData\Roaming\.purple\blist.xml (05:28:51) util: Writing file prefs.xml to directory C:\Users\user\AppData\Roaming\.purple (05:28:51) util: Writing file C:\Users\user\AppData\Roaming\.purple\prefs.xml (05:28:55) g_log: googlechat_conv_send_typing: assertion conv_id' failed (05:28:55) conversation: typed... (05:29:11) googlechat: Received event status string: 'noop' (05:29:11) http: Request 06CAF358 performed successfully. (05:29:11) http: Performing new request 06CAED70 for https://chat.google.com/webchannel/events_encoded?VER=8&RID=rpc&SID=DYhJjfHZauDPS8TDeMhKEA&AID=10&CI=0&t=1&TYPE=xmlhttp&. (05:29:11) googlechat: Received event status string: 'noop' (05:29:41) googlechat: Received event status string: 'noop' (05:30:08) http: Performing new request 06CAEE18 for https://chat.google.com/webchannel/events_encoded?VER=8&RID=1234&SID=DYhJjfHZauDPS8TDeMhKEA&AID=12&CI=0&t=1&. (05:30:08) http: Request 06CAEE18 performed successfully. (05:30:10) http: Performing new request 06CAECC8 for https://chat.google.com/api/get_user_presence?rt=b&alt=proto. (05:30:10) http: Request 06CAECC8 performed successfully. (05:30:10) blist: Updating buddy status for 111300597432682313270 (Google Chat) (05:30:10) blist: Updating buddy status for 115281509901322981976 (Google Chat) (05:30:10) blist: Updating buddy status for 107053598375977251616 (Google Chat) (05:30:10) blist: Updating buddy status for 110718013804334716151 (Google Chat) (05:30:10) blist: Updating buddy status for 102137573364864223700 (Google Chat) (05:30:10) blist: Updating buddy status for 112191853981395802206 (Google Chat) (05:30:10) blist: Updating buddy status for 102087137516845847597 (Google Chat) (05:30:10) blist: Updating buddy status for 118190422992311110849 (Google Chat) (05:30:10) blist: Updating buddy status for 114978294661284484677 (Google Chat) (05:30:11) googlechat: Received event status string: 'noop' (05:30:11) http: Request 06CAED70 performed successfully. (05:30:11) http: Performing new request 06602948 for https://chat.google.com/webchannel/events_encoded?VER=8&RID=rpc&SID=DYhJjfHZauDPS8TDeMhKEA&AID=13&CI=0&t=1&TYPE=xmlhttp&. (05:30:11) googlechat: Received event status string: 'noop' (05:30:41) googlechat: Received event status string: 'noop'

I'm willing to share the entire contents of the debug window but not on a public forum, as it seems to have stuff like... IP addresses. XD

Something I forgot to mention is that 1) a buddy using the native browser gchat to IM me first doesn't pop up a pidgin window at all; 2) if a window is already open on my end and I'm simultaneously using the native client, their messages show in the window but mine don't;, and 3) after reading the update on how this works via browser authentication, does it matter that I'm using an outdated version of Chrome? It's the same one I've utilized for months with no problem, but just thought to ask.

Thank you for your patience and walking an idiot through this process. ^_^;

torrentiality avatar Sep 09 '25 09:09 torrentiality

Adding to this, my father's machine has been experiencing similar crashes. Here's the pidgin.RPT file: https://gist.github.com/SeanCline/b466a7034342ab12a75adafb4d686d60

He was running a version of purple-googlechat from January, but the issue didn't start happening until June. Perhaps a Pidgin update, or protocol change on Google's side exposed it.

I've updated to the latest Pidgin (2.14.14), latest purple-googlechat (nightly-653a6dde34e0f3e556ffb3b86c23d535f9a27d11), and configured Windows Error Reporting to save a dump file. So if it happens again, we should be able to get a good callstack. (Though I've never debugged a Windows dump of a mingw binary, so hopefully that's not too hard.)

SeanCline avatar Sep 09 '25 22:09 SeanCline