Subject: bug#12587: 24.2; Delayed startup, unresponsive Emacs in MS Windows when netlogon services is running in a domain

From: Eli Zaretskii <[email-masked]>
Date: Sun, 14 Oct 2012 16:53:01 +0200

> Date: Sun, 14 Oct 2012 15:03:33 +0200
> From: Mohammed Imaduddin Humayun <[email-masked]>
> CC: Eli Zaretskii <[email-masked]>
> 
> Just so we're on the same page this is roughly the timeline:
> (start emacs)----------------(GUI 
> appears)----------------------------------------------------(welcome screen)
>     0s ------------------------------- ~2 min 
> --------------------------------------------------------------- ~7 min

Yes, I understand that.

> >> So please repeat what you did, but do it once before the GUI shows up,
> >> and then again between the time the GUI shows up and the time Emacs
> >> shows its welcome screen.  (If you know to which of these two time
> >> instances belongs the first backtrace you show above, you need only to
> >> produce the backtrace for the other time instance.)
> I'm not clear on this. Wouldn't the backtrace be the same if I just 
> produce it for the latter time instance (welcome screen) given that this 
> happens only after the GUI shows up?

No, it isn't necessarily so.  Emacs does a series of initializations
during these phases, and looks for quite a long list of files, so you
might as well see an entirely different backtrace.  I'd like to make
sure that LookupAccountSidW, called from 'stat', is the only function
that slows down the startup.

> > I'd still like to see this information, to make sure there isn't any
> > other place that slows down the startup.
> Sorry I couldn't find time to do this sooner, but the following steps 
> didn't give the backtrace as expected  ... :
> 
> cd \path\to\emacs.exe
> gdb ./emacs.exe
> (gdb) break CreateThread
> (Answer 'y' when GDB asks whether to make this breakpoint pending on future shared
> library load)
> (gdb) commands
> backtrace
> continue
> end
> (gdb) run -Q
> 
> 
> ... and below is the log, but no backtrace was shown:
> ------------------------------------------------------
> Function "CreateThread" not defined.
> Make breakpoint pending on future shared library load? (y or [n])
> Breakpoint 1 (CreateThread) pending.
> Type commands for breakpoint(s) 1, one per line.
> End with a line saying just "end".
> Starting program: C:\emacs-24.2.50\bin\emacs.exe
> [New Thread 9940.0x2db0]
> [New Thread 9940.0x2bbc]
> [New Thread 9940.0x2c0c]
> [New Thread 9940.0x2ed0]
> [New Thread 9940.0x2840]
> [New Thread 9940.0xe8c]
> [New Thread 9940.0x7e8]
> [New Thread 9940.0xe3c]
> [New Thread 9940.0x1284]
> [New Thread 9940.0x11d4]
> [Inferior 1 (process 9940) exited normally]
> -------------------------------------------------------------
> 
> What do I need to rectify here?

No, that's fine.  I think the issue with CreateThread is a red herring
anyway, sorry.  The only additional information I'd like to see is the
backtrace during the time between the instance the GUI shows up and
the welcome screen.

Thanks.