Subject: Re: bug#25875: 26.0.50; Hang logging out of MS-Windows

From: Richard Copley <[email-masked]>
Date: Sat, 25 Feb 2017 21:07:51 +0000

On 25 February 2017 at 20:33, Eli Zaretskii <[email-masked]> wrote:
>> From: Richard Copley <[email-masked]>
>> Date: Sat, 25 Feb 2017 19:35:28 +0000
>>
>> On MS Windows, Emacs sometimes hangs when shutting down or logging out.
>
> How did you shut it down in this case?  This part:
>
>> #2  0x0000000400266caf in sys_sleep (seconds=1000)
>>     at ../../repo/src/w32.c:3075
>> No locals.
>> #3  0x0000000400238225 in w32_wnd_proc (hwnd=0x1f076a, msg=22, wParam=1,
>>     lParam=0) at ../../repo/src/w32fns.c:4805
>
> seems to indicate that you shut down your Windows session or
> something?

Yes indeed. Hence "when shutting down or logging out". In this
case shutting down the computer.

>> (This build includes 5114b3a204..: Eli Zaretskii 2017-02-23 Avoid
>> quitting inside a critical section on MS-Windows, see #25279).
>>
>> I've included backtraces for all the threads having Emacs functions on
>> the stack, because I can't tell which are deadlocked, if any. (2 and 3?)
>
> I'm not sure I see any of them deadlocked.  Each one is waiting for
> something it should.

Yes, I think you're right, it wasn't a deadlock (see my later mail).

>> Also got these from thread 2, frame 2.
>>
>> (gdb) print crit
>> $1 = (CRITICAL_SECTION *) 0x401bc6a20 <crit_real>
>> (gdb) print crit_real
>> $2 = {DebugInfo = 0xffffffffffffffff, LockCount = -1, RecursionCount = 0,
>>   OwningThread = 0x0, LockSemaphore = 0x0, SpinCount = 33556432}
>
> Any reasons why this drew your attention?

Labouring under a misapprehension, I thought this might be the
same sort of deadlock as in #25279, so I thought this might be
relevant. But it probably wasn't.

>> Configured using:
>>  'configure --prefix=/mingw64 --with-modules
>>  --enable-locallisppath=/c/emacs/site-lisp
>>  CPPFLAGS=-D_WIN32_WINNT=_WIN32_WINNT_WIN7 'CFLAGS=-O0 -g -ggdb''
>
> Why are you setting _WIN32_WINNT to this value when compiling Emacs?

It's part of a patch that sets the AppUserModelID of the Emacs
process and of the shortcut created by addpm.exe to the same
string, so that if I pin the shortcut to the taskbar, that icon
will combine with the taskbar button of a running Emacs process.
I can't imagine it's relevant to this issue.

[Would you like to see the patch? It would only be a starting point,
since it wouldn't compile on earlier versions of the OS in its
current state. And I'm still not ready to assign copyright.]