Opened 9 years ago

Closed 9 years ago

Last modified 6 years ago

#7849 closed patch (fixed)

WinPidgin Hangs in Network Location Awareness Thread at Exit

Reported by: Hannes Rannes Owned by: datallah
Milestone: 2.5.4 Component: winpidgin (gtk)
Version: 2.5.3 Keywords: exit hang
Cc: tmcmahon2, nvidia, Zsolti, pazpaz, briand, TheKat, Y2KFirehawk, Pixelpaws, benjiphil, Dedalus, Gizmokid2005, shuckthatjive, atlantis

Description

Hello!

I updated to 2.5.3 today and since then Pidgin hangs up and stops responding on exit. It happens nearly every time when pidgin ran for a while.

I used the debug version, but no crash dump is created.

I tried preemptive debug logging, but the log file is empty except the date and time.

I'm using the ICQ and MSN protocol and Vista HP SP1.

Attachments (16)

debug.log (27.4 KB) - added by Hannes Rannes 9 years ago.
lcg_debug.log (50.4 KB) - added by lcg 9 years ago.
debugMSN.log (30.3 KB) - added by Hannes Rannes 9 years ago.
debugNoAccount.log (17.1 KB) - added by Hannes Rannes 9 years ago.
debug.2.log (5.8 KB) - added by pazpaz 9 years ago.
dif (1.7 KB) - added by Veveve 9 years ago.
Differences between a normal ended run of pidgin (output for debug = A) and a run when pidgin crashed when i tried to exit (output for debug = B). The file attached is equal with A-B (aka all the things present in A but not in B)
dif(B-A) (1.7 KB) - added by Veveve 9 years ago.
B.log (54.8 KB) - added by Veveve 9 years ago.
prefs.xml (17.5 KB) - added by dtfinch 9 years ago.
My pidgin preferences
nla-fix.patch (4.4 KB) - added by darkrain42 9 years ago.
More-or-less working fix :)
nla-fix.2.patch (4.8 KB) - added by darkrain42 9 years ago.
Slightly better version (don't use trylock, s/network_init/network_initialized/)
libpurple.zip (956.3 KB) - added by gparent 9 years ago.
Compiled libpurple.dll which fixes the hang on exit bug.
libpurple.dll (557.3 KB) - added by gparent 9 years ago.
Compiled libpurple.dll which fixes the hang on exit bug.
stacktrace.zip (1.0 MB) - added by ahuman 9 years ago.
Stack trace and PML
libpurple.2.dll (558.0 KB) - added by darkrain42 9 years ago.
libpurple.dll that should work on Vista…
nla-fix.3.patch (5.4 KB) - added by darkrain42 9 years ago.
Third time's the charm. This works for me on Vista and XP.

Change History (130)

comment:1 Changed 9 years ago by radams976

I also updated to 2.5.3 and it hangs up on exit on me also. I'm using Yahoo, Msn, Icq, Myspace protocols with Vista HP SP1. :(

comment:2 Changed 9 years ago by datallah

  • Status changed from new to pending

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

Changed 9 years ago by Hannes Rannes

comment:3 Changed 9 years ago by Hannes Rannes

  • Status changed from pending to new

Attachment (debug.log) added by ticket reporter.

comment:5 Changed 9 years ago by Hannes Rannes

Oh, ok, it worked now with:

pidgin.exe -d 2>&1 > "%USERPROFILE%\debug.log"

comment:6 Changed 9 years ago by zan2828

I can confirm that after updating to 2.5.3 from 2.5.2, Pidgin hangs on quit, whether from the Buddy List File menu or right clicking the tray icon.

The amount of activity prior to quitting does not seem to matter; in other words, it will hang even if quit immediately after program startup.

comment:7 Changed 9 years ago by zan2828

Forgot to add. I am using Vista Ultimate x64 SP1.

comment:8 Changed 9 years ago by prandal

Same problem here on Windows XP.

The change which caused the problem was checked in on or after December 5th - my build from mtn on that date works fine.

comment:9 follow-up: Changed 9 years ago by lcg

I can confirm this with Pidgin 2.5.3 on two separate installations of Vista Business SP1: Upon exit, Pidgin completely hogs one of my CPU cores and I have to kill the process.

I am also attaching a debug log from one of the machines (anonymized).

Changed 9 years ago by lcg

comment:10 Changed 9 years ago by lliiiill

I can confirm the same with 2.5.3. WinXP, ICQ/Jabber protocols.

comment:11 Changed 9 years ago by rekkanoryo

  • Component changed from unclassified to winpidgin (gtk)
  • Owner changed from lschiere to datallah

The last entry in both debug logs here is wpurple_cleanup. This looks to me like a Windows issue of some sort.

comment:12 Changed 9 years ago by datallah

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

comment:13 Changed 9 years ago by datallah

I can't recreate this.

comment:14 in reply to: ↑ 9 Changed 9 years ago by jmccrohan

Replying to lcg:

I can confirm this with Pidgin 2.5.3 on two separate installations of Vista Business SP1: Upon exit, Pidgin completely hogs one of my CPU cores and I have to kill the process.

I am also attaching a debug log from one of the machines (anonymized).

I can also confirm this behaviour with Pidgin 2.5.3 on Windows Vista Business SP1.

2 accounts: MSN and XMPP.

comment:15 Changed 9 years ago by maximusmmiv

This happens to both of my Windows Vista Home Premium SP1 machines as well.

comment:16 Changed 9 years ago by tmcmahon2

I can reproduce this every time. I have a dump file but it's 40MB compressed. Do we need any more log files? I'm using Vista 64 as well.

comment:17 Changed 9 years ago by dcoaster

Yep. This is also happening to me as well. Vista Home Premium x86 after upgrading 2.5.3.

comment:18 Changed 9 years ago by nvidia

Same here.

Windows XP SP3
MSN protocol

comment:19 Changed 9 years ago by dtfinch

Same here. Freezing in or below wpurple_cleanup on exit, every time so far since upgrading from 2.5.2 to 2.5.3. Never happened before. Running on Vista. I use it for MSN, Yahoo, XMPP, and AIM.

Here's a stack dump from Process Explorer I took while it was frozen:

ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!PsGetCurrentThreadTeb+0x377
hal.dll!KfRaiseIrql+0xd1
hal.dll!KeRaiseIrqlToSynchLevel+0x70
hal.dll!HalEndSystemInterrupt+0x73
hal.dll!HalInitializeProcessor+0xcc1
ntdll.dll!KiFastSystemCall
kernel32.dll!Sleep+0xf
NLAapi.dll!NlaRegisterQuery+0x4a9f
WS2_32.DLL!WSAEnumProtocolsW+0x24e
WS2_32.DLL!WSAEnumProtocolsW+0x217
WS2_32.DLL!socket+0x1a1
WS2_32.DLL!WahEnumerateHandleContexts+0x1f0
WS2_32.DLL!WahEnumerateHandleContexts+0x11d
libpurple.dll!wpurple_cleanup+0x20
libpurple.dll!purple_core_quit+0xe5
libgobject-2.0-0.dll!g_closure_invoke+0x115
libgobject-2.0-0.dll!g_signal_has_handler_pending+0xf55
libgobject-2.0-0.dll!g_signal_emit_valist+0x7fa
libgobject-2.0-0.dll!g_signal_emit+0x26
libgtk-win32-2.0-0.dll!gtk_widget_activate+0x9b
libgtk-win32-2.0-0.dll!gtk_menu_shell_activate_item+0xec
libgtk-win32-2.0-0.dll!gtk_menu_shell_activate_item+0x48a
libgtk-win32-2.0-0.dll!gtk_marshal_VOID__UINT_STRING+0x142
libgobject-2.0-0.dll!g_closure_invoke+0x115
libgobject-2.0-0.dll!g_signal_has_handler_pending+0xb86
libgobject-2.0-0.dll!g_signal_emit_valist+0x54c
libgobject-2.0-0.dll!g_signal_emit+0x26
libgtk-win32-2.0-0.dll!gtk_widget_activate+0x224
libgtk-win32-2.0-0.dll!gtk_propagate_event+0xd1
libgtk-win32-2.0-0.dll!gtk_main_do_event+0x261
libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b6e
libglib-2.0-0.dll!g_main_context_dispatch+0x197
libglib-2.0-0.dll!g_main_context_acquire+0x3db
libglib-2.0-0.dll!g_main_loop_run+0x17a
libgtk-win32-2.0-0.dll!gtk_main+0x9e
pidgin.dll!pidgin_main+0x481
pidgin.exe+0x23ec
pidgin.exe+0x2a4a
pidgin.exe+0x1247
pidgin.exe+0x12b8
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36

comment:20 Changed 9 years ago by dtfinch

The above list looked a lot nicer (had linebreaks) before I hit submit.

comment:21 Changed 9 years ago by rekkanoryo

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

comment:22 follow-ups: Changed 9 years ago by datallah

It looks like this is somehow caused by something blocking on an open socket.

What people have posted here is somewhat contradictory in narrowing down the relevant protocol; nvidia apparently is only using MSN, while lliiiill isn't using MSN at all.

Can one of the people experiencing this test by only ever signing into one account in one protocol during the program session (pidgin -n will disable autologin) and get a debug log - if we can narrow this down to the affected protocol, it'll be easier to to figure out what is happening.

comment:23 in reply to: ↑ 22 Changed 9 years ago by darkrain42

Replying to datallah:

Can one of the people experiencing this test by only ever signing into one account in one protocol during the program session (pidgin -n will disable autologin) and get a debug log - if we can narrow this down to the affected protocol, it'll be easier to to figure out what is happening.

I had someone try that in #pidgin yesterday; it was able to quit after he'd signed in to MSN, but when he tried it with his AIM account, it hung.

comment:24 in reply to: ↑ 22 ; follow-up: Changed 9 years ago by Hannes Rannes

Replying to datallah: I said I'm using ICQ and MSN but my attached debug file I created with only ICQ enabled. But it hangs with only MSN enabled as well.

comment:25 in reply to: ↑ 24 Changed 9 years ago by datallah

Replying to Hannes Rannes:

Replying to datallah: I said I'm using ICQ and MSN but my attached debug file I created with only ICQ enabled. But it hangs with only MSN enabled as well.

Please attach a log with only MSN enabled (and make sure that it actually hangs in that scenario).

comment:26 in reply to: ↑ description Changed 9 years ago by vlasak

the same issue here. XP SP3 using ICQ and YAHOO. It happens with boíth enabled, only with ICQ enabled and also only with YAHOO enabled. When I open pidgin and immediately after start I close him then he is closed without issue. When I close him after some minutes it always hung up. When pigin is frozen then also I am not able to comunicate with taskbar and start menu.

Changed 9 years ago by Hannes Rannes

comment:27 Changed 9 years ago by dtfinch

I could reproduce the problem on my work computer running XP SP3, same accounts, with all plugins disabled.

Sometimes it won't freeze if pidgin's been open less than a minute or two, which makes it time consuming to narrow down the minimal case.

comment:28 Changed 9 years ago by Hannes Rannes

I can confirm that Pidgin has to run about 40 seconds at least. It also happens with NO account enabled. (See debug log.)

Changed 9 years ago by Hannes Rannes

comment:29 Changed 9 years ago by QuLogic

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

comment:30 in reply to: ↑ description Changed 9 years ago by pazpaz

I've tried running pidgin with a new %APPDATA%\.purple directory and with the following removed from the C:\Program Files\Pidgin directory: pixmaps/, plugins/, sasl2/, perlmod/, and all DLLs not required for Pidgin to run. Pidgin still hangs on exit. I'm running the debug build of Pidgin 2.5.3 on Windows XP SP3.

C:\Program Files\Pidgin contains only the following: ca-certs/, sounds/, locale/, pidgin-uninst.exe, pidgin.exe, pidgin.dll, idletrack.dll, libgtkspell.dll, libpurple.dll, libxml2.dll

Changed 9 years ago by pazpaz

comment:31 Changed 9 years ago by dgreenbe

Pidgin 2.5.3 on vista x64 SP1 hangs on exit too. I can confirm that it does not happen until Pidign has been running for a couple of minutes. Last line in the debug log is:

(15:57:15) wpurple: wpurple_cleanup

Changed 9 years ago by Veveve

Differences between a normal ended run of pidgin (output for debug = A) and a run when pidgin crashed when i tried to exit (output for debug = B). The file attached is equal with A-B (aka all the things present in A but not in B)

comment:32 Changed 9 years ago by Veveve

Using Vista Business x86 SP2 beta (v.113), only one account open, no plug-ins activated, having only yahoo users in my buddy list.

Changed 9 years ago by Veveve

Changed 9 years ago by Veveve

comment:33 Changed 9 years ago by eindh

In my case: Windows XP SP3, MSN protocol (1 account). Plugins: Windows preferences and release notification.

comment:34 in reply to: ↑ description Changed 9 years ago by Theborg3of5

I can confirm the same thing on Windows XP, SP3. After that time delay, even with no plugins or accounts enabled, it hangs on exit and hogs memory.

Changed 9 years ago by dtfinch

My pidgin preferences

comment:35 Changed 9 years ago by dtfinch

Asked a random pidgin 2.5.3 user in my contact list, and they said they're experiencing the same problem on all their systems, which include XP SP2 and Vista SP1.

Merry Christmas

comment:36 Changed 9 years ago by rekkanoryo

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

comment:37 Changed 9 years ago by kaustubhvp

facing same problem with Win XP SP2. pidgin 2.5.3 haungs up for many time n uses almost 50 mb ram n 49-50 CPU usage

comment:38 follow-up: Changed 9 years ago by rekkanoryo

Not trying to offend anyone here, but we don't need any more "me too" posts on this issue. We know this is apparently a fairly widespread problem.

comment:39 Changed 9 years ago by khc

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

comment:40 in reply to: ↑ 38 Changed 9 years ago by ralf.faust

Replying to rekkanoryo:

Not trying to offend anyone here, but we don't need any more "me too" posts on this issue. We know this is apparently a fairly widespread problem.

Oh yes we do, dear friend. Otherwise this ticket will simply be ignored as "works for me". Has happened before. Come to think of it, it will probably happen anyway.

Same issue here on Vista x64.

comment:41 Changed 9 years ago by deryni

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

Changed 9 years ago by darkrain42

More-or-less working fix :)

comment:42 Changed 9 years ago by darkrain42

This problem is caused by the Network Location Awareness thread, since WSANPIoctl() waiting for a network state change and apparently WSACleanup() waits for the ioctl to return before cleaning up. That function is triggered initially 30 seconds after the first initialization of Pidgin, which is why Pidgin can exit properly in the first 30 seconds of execution. I have NFI why this magically broke in 2.5.3; having looked at a diff of 2.5.2 to 2.5.3, I see no reason it should break all-of-a-sudden.

The attached patch fixes this issue for me, though to anyone who likes threads and mutexes, please review my logic. The mutex protects network_change_handle and network_init. I moved the 30s second wait to happen while the handle is not initialized (it probably doesn't matter/that may not be the right thing to do, but I figured it was better to sleep while the handle is NULL).

Additionally, GStaticMutex apparently throws "warning: dereferencing type-punned pointer will break strict-aliasing rules" during compilation. See GTK bug #316221. I believe using GMutex would not throw this warning, but would ideally require a g_thread_join(nla_thread) + g_mutex_free() in order to fully clean up the mutex (for GUIs that uninit+init libpurple in the same execution cycle). And that would possibly delay the uninit by 30s.

Also, disabling the NLA service doesn't fix this, which makes me wonder about the WSALookupServiceBegin()...

Changed 9 years ago by darkrain42

Slightly better version (don't use trylock, s/network_init/network_initialized/)

comment:43 Changed 9 years ago by NTICompass

So, how do we apply this patch? Or should we just wait until for Pidgin 2.5.4?

P.S. I'm using GTK+ 2.14.6 and Pidgin 2.5.3 on Vista.

comment:44 in reply to: ↑ description Changed 9 years ago by Pixelpaws

As a potential work around for those who don't know how to apply a patch (like me), I've found that it tends not to crash if you set all accounts to offline before you exit Pidgin. If the problem is somehow network or connection related, then it seems to be a sensible (if slightly annoying) way to avoid the program hang until 2.5.4 is released.

comment:45 follow-up: Changed 9 years ago by prandal

That doesn't work for me, Pixelpaws.

comment:46 in reply to: ↑ 45 Changed 9 years ago by Pixelpaws

Replying to prandal:

That doesn't work for me, Pixelpaws.

It's no longer working for me either. That trick worked for a couple days.

comment:47 Changed 9 years ago by rekkanoryo

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

comment:48 Changed 9 years ago by reddem0n

I am having this issue as well - I have XP SP3 with all updates / 2gb memory / this issue happens right after I try to close pidgin it just freezes - Very annoying. I am unable to create a debug log and unsure of how to apply the patch above.

comment:49 Changed 9 years ago by gparent

Hello there. I've built my own version of libpurple with nla patch 2 applied, and it (seems) to have solved the crashing problem.

I'm not sure if I'm allowed to do this (hopefully yes), but here's my own version of libpurple attached to the ticket. Built using cygwin.

Small problem: The .dll is *gasp* 3.5 MB uncompressed! I have no idea why. The original is 600kb, but this is what was created when I used cygwin with the build env fetcher script from the "Building from source on Windows" tutorial. If someone can do better, please let me know how!

Changed 9 years ago by gparent

Compiled libpurple.dll which fixes the hang on exit bug.

comment:50 Changed 9 years ago by gparent

Doh! I didn't make the installer target, so the binaries weren't stripped of their symbols. Non-debug file uploaded.

Changed 9 years ago by gparent

Compiled libpurple.dll which fixes the hang on exit bug.

comment:51 follow-up: Changed 9 years ago by gzrodqxkmatxnf

The DLL from gparent does not work for me. Original 2.5.3 does not work, too. Getting hangs on exit. I can confirm that it works if I open Pidgin and immediately close it down. Vista x64 SP1

comment:52 follow-ups: Changed 9 years ago by reddem0n

Thank you gparent, your http://developer.pidgin.im/attachment/ticket/7849/libpurple.dll file has fixed my problem. I simply made a backup copy of the old lippurple.dll in the c:\program files\pidgin\ folder and saved this dll file into the same directory. Restarted pidgin, then exited and started it again, and wala no more problems. I have xp pro sp3 with latest version of pidgin.

comment:53 in reply to: ↑ 52 Changed 9 years ago by Y2KFirehawk

Replying to reddem0n:

Thank you gparent, your http://developer.pidgin.im/attachment/ticket/7849/libpurple.dll file has fixed my problem. I simply made a backup copy of the old lippurple.dll in the c:\program files\pidgin\ folder and saved this dll file into the same directory. Restarted pidgin, then exited and started it again, and wala no more problems. I have xp pro sp3 with latest version of pidgin.

I did the same things as well, and it worked perfect!! Thank you gparent! :)

comment:54 Changed 9 years ago by rekkanoryo

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

comment:55 in reply to: ↑ 51 ; follow-up: Changed 9 years ago by NTICompass

Replying to gzrodqxkmatxnf:

The DLL from gparent does not work for me. Original 2.5.3 does not work, too. Getting hangs on exit. I can confirm that it works if I open Pidgin and immediately close it down. Vista x64 SP1

I have Vista SP1 (32-bit), and I have the same results.

comment:56 in reply to: ↑ 55 Changed 9 years ago by NTICompass

Replying to NTICompass:

Replying to gzrodqxkmatxnf:

The DLL from gparent does not work for me. Original 2.5.3 does not work, too. Getting hangs on exit. I can confirm that it works if I open Pidgin and immediately close it down. Vista x64 SP1

I have Vista SP1 (32-bit), and I have the same results.

I tried using the one in the .ZIP file (the 3.5 MB one) and I think it works now. I need to test it more. Because even with the original DLL, it would sometimes work, and sometimes not.

comment:57 Changed 9 years ago by rekkanoryo

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

comment:58 Changed 9 years ago by kungfujoe

I was having this problem in 2.5.2, and hoped that upgrading to 2.5.3 would resolve it. It did not, but I see that a lot of people are seeing this problem for the first time in this version. I believe I first saw it in 2.5.2, if not 2.5.1. I'm running in Windows XP SP3.

comment:59 Changed 9 years ago by kungfujoe

Sorry, should've read through and downloaded the fix before leaving my last comment. Based on a quick test (launching Pidgin, sending someone a message, and exiting Pidgin), the fixed libpurple.dll file appears to solve the problem for me, too.

comment:60 in reply to: ↑ 52 Changed 9 years ago by TeraByte911

Replying to reddem0n:

Thank you gparent, your http://developer.pidgin.im/attachment/ticket/7849/libpurple.dll file has fixed my problem. I simply made a backup copy of the old lippurple.dll in the c:\program files\pidgin\ folder and saved this dll file into the same directory. Restarted pidgin, then exited and started it again, and wala no more problems. I have xp pro sp3 with latest version of pidgin.

I can confirm that the new DLL file fixes the issue. Running Windows XP Pro SP3 and Pidgin 2.5.3 with gparent's DLL.

comment:61 in reply to: ↑ description ; follow-up: Changed 9 years ago by solsolsol

gparent's libpurple.dll seems to have this problem solved for me as of now. I made an account for this trac to specifically bump this ticket, since I don't see it being added to the roadmap and it really is a deal breaker.

comment:62 in reply to: ↑ 61 Changed 9 years ago by TeraByte911

Agreed, this needs to be set as a milestone for 2.5.4.

comment:63 Changed 9 years ago by khc

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

comment:64 follow-up: Changed 9 years ago by dtfinch

Still freezes on exit for me with the new .dll. Still in wpurple_cleanup.

I had it running a few hours, if that makes a difference.

comment:65 in reply to: ↑ 64 Changed 9 years ago by darkrain42

Replying to dtfinch:

Still freezes on exit for me with the new .dll. Still in wpurple_cleanup.

I had it running a few hours, if that makes a difference.

If you're sure you're running with a patched .dll and getting hangs, please obtain both a process explorer stack dump (from all the threads, not just the main one) and a process monitor trace (filter on pidgin.exe). You should (in my testing) only need to run Pidgin for a little over 30s and it can be run with no accounts enabled, so the trace should be reasonably small.

comment:66 Changed 9 years ago by Dedalus

Here, with patched *.dll on Windows Xp sp3 this issue is fixed.

comment:67 follow-ups: Changed 9 years ago by Dehumanizer

Not fixed here, with either one of the new DLLs. Using Vista SP1.

Everyone who reported the new DLL works seems to be using XP; maybe something different needs to be done for Vista?

comment:68 follow-ups: Changed 9 years ago by vlasak

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

http://downloads.sourceforge.net/pidgin/pidgin-2.5.2.exe?modtime=1224448736&big_mirror=1

comment:69 in reply to: ↑ 67 Changed 9 years ago by TeraByte911

Replying to Dehumanizer:

Not fixed here, with either one of the new DLLs. Using Vista SP1.

Everyone who reported the new DLL works seems to be using XP; maybe something different needs to be done for Vista?

This does appear to be the case, however a friend of mine is running Pidgin 2.5.3 on Vista SP1 and reports no problems whatsoever with the unpatched DLL.

comment:70 in reply to: ↑ 68 Changed 9 years ago by Dehumanizer

Replying to vlasak:

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

Yes, but I'd guess that the point is to fix this by 2.5.4...

comment:71 Changed 9 years ago by rekkanoryo

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

comment:72 Changed 9 years ago by Gizmokid2005

I can confirm this is an issue for me also. Though it's not consistent. I had pidgin running for 4 days and it closed fine.

comment:73 in reply to: ↑ 68 ; follow-up: Changed 9 years ago by NTICompass

Replying to vlasak:

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

2.5.2 is working for me on Vista.

comment:74 Changed 9 years ago by rekkanoryo

  • Type changed from defect to patch

comment:75 Changed 9 years ago by rekkanoryo

  • Summary changed from Pidgin hangs up on exit to WinPidgin Hangs in Network Location Awareness Thread

comment:76 in reply to: ↑ 67 Changed 9 years ago by solsolsol

Replying to Dehumanizer:

Not fixed here, with either one of the new DLLs. Using Vista SP1.

Everyone who reported the new DLL works seems to be using XP; maybe something different needs to be done for Vista?

Yes, I forgot to add previously that I am using WinXp? SP3 fully updated.

comment:77 Changed 9 years ago by shuckthatjive

For what it's worth, gparent's dll didn't help me either. I'm on Vista x64, using AIM, Google and the Facebook Chat plugin.

comment:78 in reply to: ↑ 73 ; follow-up: Changed 9 years ago by Veveve

Replying to NTICompass:

Replying to vlasak:

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

2.5.2 is working for me on Vista.

... WTF?

comment:79 Changed 9 years ago by dcoaster

It's unfortunate this happened because I actually had to start to use Digsby, and it has me converted. Pidgin, I loved ya while it lasted. =/

Hope this gets fixed for you guys/gals.

comment:80 Changed 9 years ago by Veveve

Doesn't work on Vista 32 bit SP2 beta :|

comment:81 in reply to: ↑ 78 ; follow-ups: Changed 9 years ago by NTICompass

Replying to Veveve:

Replying to NTICompass:

Replying to vlasak:

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

2.5.2 is working for me on Vista.

... WTF?

What's confusing you? 2.5.3 broke something. Downgrading fixes the problem. No 'WTFs' needed.

comment:82 Changed 9 years ago by rekkanoryo

  • Keywords windows vista up freeze not responding removed
  • Summary changed from WinPidgin Hangs in Network Location Awareness Thread to WinPidgin Hangs in Network Location Awareness Thread at Exit

comment:83 in reply to: ↑ 81 ; follow-up: Changed 9 years ago by Veveve

Replying to NTICompass:

Replying to Veveve:

Replying to NTICompass:

Replying to vlasak:

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

2.5.2 is working for me on Vista.

... WTF?

What's confusing you? 2.5.3 broke something. Downgrading fixes the problem. No 'WTFs' needed.

The individual clearly expresses a fact: 2.5.2 is working fine on Vista and it doesn't have this particular problem. Why is this interesting? This is the reason of that 'wtf'.

Anyway... this is, most probably, off-topic. I apologize for the comment.

comment:84 in reply to: ↑ 81 Changed 9 years ago by datallah

Replying to NTICompass:

What's confusing you? 2.5.3 broke something. Downgrading fixes the problem. No 'WTFs' needed.

There's plenty to be confused about here - while the patch looks like it is probably the right thing to do, we still have no explanation for why 2.5.3 is causing problems as there have been no changes in anything remotely related to the code in question.

The other part that is confusing is that I can't recreate this at all.

comment:85 in reply to: ↑ 83 Changed 9 years ago by NTICompass

Replying to Veveve:

Replying to NTICompass:

Replying to Veveve:

Replying to NTICompass:

Replying to vlasak:

The best solution for now is to download working version 2.5.2 from sourceforge. Everything will be working again and you will be happy.

2.5.2 is working for me on Vista.

... WTF?

What's confusing you? 2.5.3 broke something. Downgrading fixes the problem. No 'WTFs' needed.

The individual clearly expresses a fact: 2.5.2 is working fine on Vista and it doesn't have this particular problem. Why is this interesting? This is the reason of that 'wtf'.

Anyway... this is, most probably, off-topic. I apologize for the comment.

I'm sorry too. I misinterpreted what you meant.

comment:86 Changed 9 years ago by rekkanoryo

This ticket is not a place for a conversation. This is a bug tracker, not a forum. We are still waiting for someone who is still having issues after applying the patched DLL to supply a Process Explorer dump. If you're not a Pidgin developer, darkrain42, or a user who is supplying said Process Explorer dump, do not add further content to this ticket, or I will ensure that no one can. Don't reply to this comment either.

Changed 9 years ago by ahuman

Stack trace and PML

comment:87 Changed 9 years ago by ahuman

Attached is a stack trace and a PML file. It was made using pidgin-debug 2.5.3 with the 3.5mb patched dll on Vista x64. I was hoping someone more technical would do it, but =P

comment:88 Changed 9 years ago by dtfinch

Stack traces from Process Explorer for each thread, the first being the one with high cpu usage while it was frozen, with the patched dll. Running Vista SP1.

ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!PsGetCurrentThreadTeb+0x377
hal.dll!KfRaiseIrql+0xd1
hal.dll!KeRaiseIrqlToSynchLevel+0x70
hal.dll!HalEndSystemInterrupt+0x73
hal.dll!HalInitializeProcessor+0xcc1
ntdll.dll!KiFastSystemCallRet
kernel32.dll!Sleep+0xf
NLAapi.dll!NlaRegisterQuery+0x4a9f
WS2_32.DLL!WSAEnumProtocolsW+0x24e
WS2_32.DLL!WSAEnumProtocolsW+0x217
WS2_32.DLL!socket+0x1a1
WS2_32.DLL!WahEnumerateHandleContexts+0x1f0
WS2_32.DLL!WahEnumerateHandleContexts+0x11d
libpurple.dll!wpurple_cleanup+0x20
libpurple.dll!purple_core_quit+0xea
libgobject-2.0-0.dll!g_closure_invoke+0x115
libgobject-2.0-0.dll!g_signal_has_handler_pending+0xf55
libgobject-2.0-0.dll!g_signal_emit_valist+0x7fa
libgobject-2.0-0.dll!g_signal_emit+0x26
libgtk-win32-2.0-0.dll!gtk_widget_activate+0x9b
libgtk-win32-2.0-0.dll!gtk_menu_shell_activate_item+0xec
libgtk-win32-2.0-0.dll!gtk_menu_shell_activate_item+0x48a
libgtk-win32-2.0-0.dll!gtk_marshal_VOID__UINT_STRING+0x142
libgobject-2.0-0.dll!g_closure_invoke+0x115
libgobject-2.0-0.dll!g_signal_has_handler_pending+0xb86
libgobject-2.0-0.dll!g_signal_emit_valist+0x54c
libgobject-2.0-0.dll!g_signal_emit+0x26
libgtk-win32-2.0-0.dll!gtk_widget_activate+0x224
libgtk-win32-2.0-0.dll!gtk_propagate_event+0xd1
libgtk-win32-2.0-0.dll!gtk_main_do_event+0x261
libgdk-win32-2.0-0.dll!gdk_event_get_graphics_expose+0x3b6e
libglib-2.0-0.dll!g_main_context_dispatch+0x197
libglib-2.0-0.dll!g_main_context_acquire+0x3db
libglib-2.0-0.dll!g_main_loop_run+0x17a
libgtk-win32-2.0-0.dll!gtk_main+0x9e
pidgin.dll!pidgin_main+0x481
pidgin.exe+0x23ec
pidgin.exe+0x2a4a
pidgin.exe+0x1247
pidgin.exe+0x12b8
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!NtWaitForSingleObject+0xc8
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
kernel32.dll!WaitForSingleObject+0x12
NLAapi.dll!NlaRegisterQuery+0x443d
WS2_32.DLL!WSANSPIoctl+0x1b4
WS2_32.DLL!WSANSPIoctl+0x185
WS2_32.DLL!WSANSPIoctl+0x121
WS2_32.DLL!WSANSPIoctl+0x82
libpurple.dll!purple_network_get_handle+0x1eb
libglib-2.0-0.dll!g_static_private_free+0x325
libgthread-2.0-0.dll+0x207f
msvcrt.dll!wcstombs_s+0x40
msvcrt.dll!beginthreadex+0xc9
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!NtWaitForSingleObject+0xc8
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
kernel32.dll!WaitForSingleObject+0x12
libpurple.dll!purple_whiteboard_set_brush+0x422
msvcrt.dll!wcstombs_s+0x40
msvcrt.dll!beginthreadex+0xc9
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!NtWaitForSingleObject+0xc8
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
kernel32.dll!WaitForSingleObject+0x12
libpurple.dll!purple_whiteboard_set_brush+0x422
msvcrt.dll!wcstombs_s+0x40
msvcrt.dll!beginthreadex+0xc9
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForSingleObject+0x492
hal.dll!KfLowerIrql+0x64
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
WINMM.DLL+0x1515
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForMultipleObjects+0x540
ntkrnlpa.exe!CcPreparePinWrite+0x2171
ntkrnlpa.exe!CcPreparePinWrite+0x1ee0
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
wdmaud.drv!wodMessage+0x3e7
wdmaud.drv!modMessage+0x273
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeWaitForMultipleObjects+0x540
ntkrnlpa.exe!CcPreparePinWrite+0x2171
ntkrnlpa.exe!CcPreparePinWrite+0x1ee0
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
ntkrnlpa.exe!KeWaitForMultipleObjects+0xab7
ntkrnlpa.exe!KeRemoveQueueEx+0x741
ntkrnlpa.exe!NtSetEvent+0x2bf
ntkrnlpa.exe!NtQueryInformationProcess+0x255c
ntkrnlpa.exe!ZwQueryLicenseValue+0xbd2
ntdll.dll!KiFastSystemCallRet
RPCRT4.dll!UuidCreate+0xc6
RPCRT4.dll!UuidCreate+0x166
RPCRT4.dll!I_RpcSend+0x181
RPCRT4.dll!I_RpcSend+0x148
RPCRT4.dll!I_RpcSend+0x1ad
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36

I forgot to run procmon before closing pidgin, and it would have been awkward to log back in 10 minutes after saying good night to everyone. I ran procmon anyways while it was already frozen, in case it might catch something interesting happening in that infinite loop, but it didn't log anything for the include filter process name = pidgin.exe, and no other filters.

There were no still-open connections according to TCPView.

Changed 9 years ago by darkrain42

libpurple.dll that should work on Vista...

Changed 9 years ago by darkrain42

Third time's the charm. This works for me on Vista and XP.

comment:89 Changed 9 years ago by darkrain42

Okay, well. Thanks Fizzter, ahuman, and dtfinch. Apparently calling WSALookupServiceEnd wasn't enough on Vista.

I've attached a third patch and compiled libpurple.dll (you'll need to rename it to lose the .2. that trac put in) that work for me on my Vista x86 VM and XP SP2 VM/dualboot install.

This version seems to work okay.

  • The thread might get leaked if one uninits and reinits libpurple since I'm not entirely sure WSALookupServiceEnd will do anything to the event object.
  • Given the new method of waiting for notification, I'm not sure the purple_network_uninit() code is necessary. But I'm also not sure that it's not.

comment:90 Changed 9 years ago by rekkanoryo

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

comment:91 Changed 9 years ago by rekkanoryo

On first glance, the most recent patch looks good to me, but Windows and threads aren't my areas of expertise. I'll defer to Daniel. Daniel, if you want the patch in but don't have time to commit, let me know and I'll handle that.

comment:92 Changed 9 years ago by atlantis

FWIW, stopping and disabling NLA service completely resolved the problem for me (win2k03)

comment:93 Changed 9 years ago by Dehumanizer

The new DLL solved the problem for me (Vista SP1).

comment:94 Changed 9 years ago by kungfujoe

I reported success too soon.. Gparent's libpurple.dll from a few days ago did not fix the crashes on my XP SP3 (32-bit) system, so it does not resolve all of the problems in XP. The first few exits I tried did not crash, but I've had it crash twice since then. I don't have an "NLA Service" to disable (I assume atlantis is talking about Windows services?), or I'd try that. I'll also point out again that this problem predates 2.5.3, though it obviously didn't affect as many users before. I was having this problem with at least 2.5.2, and hoped that upgrading would fix it.

comment:95 Changed 9 years ago by atlantis

It's the Windows service "Network Location Awareness (NLA)" kungfujoe

comment:96 Changed 9 years ago by rmsgrey

I haven't tried the patches yet, but "repair"ing my (wireless) network connection gets Pidgin to finish closing (disabling the connection also works, but since I want it re-enabled anyway...) - it's not a proper fix, but it's a reasonable workaround (no idea whether it offers any further insight into the problem).

I'm running XP SP3 (with auto-updating, so should be up to date) and, for me, the problem started with 2.5.3

comment:97 Changed 9 years ago by rekkanoryo

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

comment:98 Changed 9 years ago by rekkanoryo

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

(In 68a6ea7faf68bd38766e147b455ffa0ad105056e):
Adjust the NLA code to prevent hang on exit for Windows XP and Windows Vista.

The crux of the issue is this:

WSANPIoctl() waits for a network state change and apparently WSACleanup() waits for the ioctl to return before cleaning up. That function is triggered initially 30 seconds after the first initialization of Pidgin, which is why Pidgin can exit properly in the first 30 seconds of execution.

comment:99 Changed 9 years ago by rekkanoryo@…

(In dd9cb9ed28311438c0cc3c2962f1c030fb282df3):
Changelog the last three patches. Refs #7836, #7849, #7889.

comment:100 Changed 9 years ago by datallah

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

comment:101 Changed 9 years ago by datallah

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

comment:102 Changed 9 years ago by datallah

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

comment:103 Changed 9 years ago by rekkanoryo

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

comment:104 Changed 9 years ago by darkrain42

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

comment:105 Changed 9 years ago by datallah

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

comment:106 Changed 9 years ago by darkrain42

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

comment:107 Changed 9 years ago by darkrain42

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

comment:108 Changed 9 years ago by deryni

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

comment:109 Changed 9 years ago by darkrain42

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

comment:110 Changed 9 years ago by darkrain42

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

comment:111 Changed 9 years ago by chaser

darkrain42's DLL fixed the problem for me.

2.5.3/MSN/XP SP3

comment:112 Changed 9 years ago by darkrain42

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

comment:113 Changed 9 years ago by darkrain42

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

comment:114 Changed 9 years ago by rekkanoryo

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

comment:115 Changed 9 years ago by darkrain42

Ticket #8111 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!