From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#74311: Long startup time on windows (with simple fix) Date: Mon, 11 Nov 2024 16:46:33 +0200 Message-ID: <86ttcdkeuu.fsf@gnu.org> References: <86v7wtkj5c.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26543"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 74311@debbugs.gnu.org To: Vladimir =?UTF-8?Q?=C5=A0ironja?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Nov 11 15:47:26 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tAVhO-0006k5-4D for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 11 Nov 2024 15:47:26 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tAVh2-0001le-Sp; Mon, 11 Nov 2024 09:47:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tAVh0-0001lC-6P for bug-gnu-emacs@gnu.org; Mon, 11 Nov 2024 09:47:02 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tAVgz-0001d0-UT for bug-gnu-emacs@gnu.org; Mon, 11 Nov 2024 09:47:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-version:References:In-Reply-To:From:Date:To:Subject; bh=lLB/iFCu+TNt5MMTn/4GAzn/75UVXvzdoBOHBcu94mw=; b=pl1mtJl8djmBoSdni5n5TIcx3aerEn+xF0jw+HYyjEBt+kOSqkSWLFd6bDt3RqoKXE0fwO1LMTZI+BSPiTninxxskH8tAovFtskmg4DOhsTUILBWraTVh1Ex6w+F1oIMdcsBdHD+VAjy92EMQSMePMJrBsDxFzqW6LMD3+oit7sPYBuniXXNOApk+b7VwiWV2toc4HcJXF3PRcXixDkme0YdIY3PlNiprpR4Fr29ga6EWNyH19+3/slIgcF1IigJ6B1XR5mHsrfr2pmKgJPT1zWCrFzvye5dVMPNJInxhQsmvLY0JeTltmFBk6Q6XS7v/X75H42MO34hZoDsuXXlNQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tAVgz-0003gF-O3 for bug-gnu-emacs@gnu.org; Mon, 11 Nov 2024 09:47:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Nov 2024 14:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74311 X-GNU-PR-Package: emacs Original-Received: via spool by 74311-submit@debbugs.gnu.org id=B74311.173133640514119 (code B ref 74311); Mon, 11 Nov 2024 14:47:01 +0000 Original-Received: (at 74311) by debbugs.gnu.org; 11 Nov 2024 14:46:45 +0000 Original-Received: from localhost ([127.0.0.1]:58824 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tAVgi-0003fe-Ou for submit@debbugs.gnu.org; Mon, 11 Nov 2024 09:46:45 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:38132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tAVgg-0003fM-C7 for 74311@debbugs.gnu.org; Mon, 11 Nov 2024 09:46:43 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tAVga-0001c9-Tz; Mon, 11 Nov 2024 09:46:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=lLB/iFCu+TNt5MMTn/4GAzn/75UVXvzdoBOHBcu94mw=; b=HHG+PKegjfRcWi2vsSQP x+clC+JRMtsehzzs6kZTXyA5/dPji0Mwz6RSVHRefLod/Kox14QWeR3wmuXpBhbiNIa55OFO7nSKL 2RO5umpBp68lPWq2hr4DfRHheigIgO9ToBO0EyNs58kh1VjmftL+ECFsnS8/zIdLmqHv5jZH27P00 05uNUHqJ7WmcgyQZ/AO4whbA8dX7BeV07UPlIuI86Sq2OdclCUc0KPS2x3Sx2YXaq/if7OoNvjFov 7OaHmbkUhpZmoy3jt/EhB/QTswsO4Niw4ixfru+cGngUhbn+PmJfvjzQ+q1MWMR9DZrL54y6pirfp jx/ZJS2h8/yvpg==; In-Reply-To: (message from Vladimir =?UTF-8?Q?=C5=A0ironja?= on Mon, 11 Nov 2024 15:12:39 +0100) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:295230 Archived-At: > From: Vladimir Šironja > Date: Mon, 11 Nov 2024 15:12:39 +0100 > Cc: 74311@debbugs.gnu.org > > sorry, didn't quite understand which bugs should be separated, please > advice again, Sorry, my misunderstanding, please ignore that part. > 1) regarding netlogon, I do not really have an option disconnecting from DC Canj you at least try it once, to see if that is the root cause? > Here the debugger session: > > (gdb) b w32.c:701 > Breakpoint 1 at 0x40031a8e0: file w32.c, line 701. > (gdb) run > Starting program: C:\Development\emacs-emacs-29.4\src\emacs.exe > [New Thread 20812.0x73b4] > [New Thread 20812.0x7bbc] > [New Thread 20812.0x60fc] > > Thread 1 hit Breakpoint 1, lookup_account_sid (lpSystemName=0x0, > Sid=0x3e714b0, Name=0xbfe850 "└o\021", cbName=0xbfe32c, > DomainName=0xbfe330 "b", cbDomainName=0xbfe328, peUse=0xbfe314) at > w32.c:701 > 701 HMODULE hm_advapi32 = NULL; > (gdb) bt > #0 lookup_account_sid (lpSystemName=0x0, Sid=0x3e714b0, Name=0xbfe850 > "└o\021", cbName=0xbfe32c, DomainName=0xbfe330 "b", > cbDomainName=0xbfe328, peUse=0xbfe314) at w32.c:701 > #1 0x00007ff79378d364 in init_user_info () at w32.c:2314 > #2 0x00007ff79378f2fe in init_environment (argv=0x26015b0) at w32.c:3233 > #3 0x00007ff7935a93de in main (argc=1, argv=0x26015b0) at emacs.c:2120 > (gdb) continue > Continuing. > > Thread 1 hit Breakpoint 1, lookup_account_sid (lpSystemName=0x0, > Sid=0x3e714a8, Name=0xbfe740 "XD┌ô\001", cbName=0xbfe320, > DomainName=0x0, cbDomainName=0xbfe328, peUse=0xbfe314) at w32.c:701 > 701 HMODULE hm_advapi32 = NULL; > (gdb) bt > #0 lookup_account_sid (lpSystemName=0x0, Sid=0x3e714a8, Name=0xbfe740 > "XD┌ô\001", cbName=0xbfe320, DomainName=0x0, cbDomainName=0xbfe328, > peUse=0xbfe314) at w32.c:701 > #1 0x00007ff79378d50c in init_user_info () at w32.c:2354 > #2 0x00007ff79378f2fe in init_environment (argv=0x26015b0) at w32.c:3233 > #3 0x00007ff7935a93de in main (argc=1, argv=0x26015b0) at emacs.c:2120 > (gdb) info locals > cache = {ret = 1, Name = 0x2606560 "Vladimir.Sironja", DomainName = > 0x26065b0 "EDGE", peUse = SidTypeUser} > been_here_count = 2 > s_pfn_Lookup_Account_Sid = 0x7ff9e0d9bc20 > hm_advapi32 = 0x7ff9e0d50000 > ret = 5 > (gdb) continue > Continuing. > [New Thread 20812.0x4594] > > Thread 1 hit Breakpoint 1, lookup_account_sid (lpSystemName=0x0, > Sid=0x1242d4, Name=0xbfdb30 "\220\\q̨\177", cbName=0xbfdb2c, > DomainName=0xbfd720 "P3\022", cbDomainName=0xbfd71c, peUse=0xbfdc38) > at w32.c:701 > 701 HMODULE hm_advapi32 = NULL; > (gdb) bt > #0 lookup_account_sid (lpSystemName=0x0, Sid=0x1242d4, Name=0xbfdb30 > "\220\\q̨\177", cbName=0xbfdb2c, DomainName=0xbfd720 "P3\022", > cbDomainName=0xbfd71c, peUse=0xbfdc38) at w32.c:701 > #1 0x00007ff793792fa6 in get_name_and_id (psd=0x1242c0, id=0xbfeac0, > nm=0xbfeaf0 "ñ9Þ\003", what=1) at w32.c:5230 > #2 0x00007ff79379308b in get_file_owner_and_group (psd=0x1242c0, > st=0xbfeab0) at w32.c:5256 > #3 0x00007ff79379379f in stat_worker (path=0x7ff793da0043 > "Development\\emacs-emacs-29.4\\src\\", buf=0xbfeab0, > follow_symlinks=0) at w32.c:5504 > #4 0x00007ff793794217 in fstatat (fd=-3041965, name=0x3e7d408 > "c:/Development/emacs-emacs-29.4/src/", st=0xbfeab0, flags=4096) at > w32.c:5751 > #5 0x00007ff7935d7b79 in emacs_fstatat (dirfd=-3041965, > filename=0x3e7d408 "c:/Development/emacs-emacs-29.4/src/", > st=0xbfeab0, flags=4096) at sysdep.c:2338 > #6 0x00007ff793612ab9 in file_attributes (fd=-3041965, name=0x3e7d408 > "c:/Development/emacs-emacs-29.4/src/", dirname=0x0, > filename=0x3e839a4, id_format=0x0) at dired.c:1016 > #7 0x00007ff793612a1e in Ffile_attributes (filename=0x3e839a4, > id_format=0x0) at dired.c:962 > #8 0x00007ff7936810f6 in funcall_subr (subr=0x7ff793c824a0 > , numargs=1, args=0x4cbd070) at eval.c:3040 > #9 0x00007ff7936d99a3 in exec_byte_code (fun=0x44e227d, > args_template=513, nargs=2, args=0x4cbd200) at bytecode.c:809 > #10 0x00007ff7936814f2 in fetch_and_exec_byte_code (fun=0x43ee9e5, > args_template=0, nargs=0, args=0xbff420) at eval.c:3085 > #11 0x00007ff793681899 in funcall_lambda (fun=0x43ee9e5, nargs=0, > arg_vector=0xbff420) at eval.c:3157 > #12 0x00007ff793681676 in apply_lambda (fun=0x43ee9e5, args=0x0, > count=...) at eval.c:3107 > #13 0x00007ff79367fb3f in eval_sub (form=0x48a614b) at eval.c:2549 > #14 0x00007ff79367f0af in Feval (form=0x48a614b, lexical=0x0) at eval.c:2365 > #15 0x00007ff7935ae82a in top_level_2 () at keyboard.c:1142 > #16 0x00007ff79367ce04 in internal_condition_case (bfun=0x7ff7935ae803 > , handlers=0x90, hfun=0x7ff7935adfad ) at > eval.c:1474 > #17 0x00007ff7935ae87c in top_level_1 (ignore=0x0) at keyboard.c:1150 > #18 0x00007ff79367c4ac in internal_catch (tag=0x103b0, > func=0x7ff7935ae82f , arg=0x0) at eval.c:1197 > #19 0x00007ff7935ae6d2 in command_loop () at keyboard.c:1110 > #20 0x0000000000000000 in ?? () > (gdb) info locals > cache = {ret = 1, Name = 0x2606560 "Vladimir.Sironja", DomainName = > 0x26065b0 "EDGE", peUse = SidTypeUser} > been_here_count = 3 > s_pfn_Lookup_Account_Sid = 0x7ff9e0d9bc20 > hm_advapi32 = 0x0 > ret = 0 > (gdb) continue > Continuing. > > Thread 1 hit Breakpoint 1, lookup_account_sid (lpSystemName=0x0, > Sid=0x1242f0, Name=0xbfdb30 "Vladimir.Sironja", cbName=0xbfdb2c, > DomainName=0xbfd720 "EDGE", cbDomainName=0xbfd71c, peUse=0xbfdc38) > at w32.c:701 > 701 HMODULE hm_advapi32 = NULL; > (gdb) bt > #0 lookup_account_sid (lpSystemName=0x0, Sid=0x1242f0, Name=0xbfdb30 > "Vladimir.Sironja", cbName=0xbfdb2c, DomainName=0xbfd720 "EDGE", > cbDomainName=0xbfd71c, peUse=0xbfdc38) at w32.c:701 > #1 0x00007ff793792fa6 in get_name_and_id (psd=0x1242c0, id=0xbfeac4, > nm=0xbfebf4 "", what=2) at w32.c:5230 > #2 0x00007ff7937930c2 in get_file_owner_and_group (psd=0x1242c0, > st=0xbfeab0) at w32.c:5258 > #3 0x00007ff79379379f in stat_worker (path=0x7ff793da0043 > "Development\\emacs-emacs-29.4\\src\\", buf=0xbfeab0, > follow_symlinks=0) at w32.c:5504 > #4 0x00007ff793794217 in fstatat (fd=-3041965, name=0x3e7d408 > "c:/Development/emacs-emacs-29.4/src/", st=0xbfeab0, flags=4096) at > w32.c:5751 > #5 0x00007ff7935d7b79 in emacs_fstatat (dirfd=-3041965, > filename=0x3e7d408 "c:/Development/emacs-emacs-29.4/src/", > st=0xbfeab0, flags=4096) at sysdep.c:2338 > #6 0x00007ff793612ab9 in file_attributes (fd=-3041965, name=0x3e7d408 > "c:/Development/emacs-emacs-29.4/src/", dirname=0x0, > filename=0x3e839a4, id_format=0x0) at dired.c:1016 > #7 0x00007ff793612a1e in Ffile_attributes (filename=0x3e839a4, > id_format=0x0) at dired.c:962 > #8 0x00007ff7936810f6 in funcall_subr (subr=0x7ff793c824a0 > , numargs=1, args=0x4cbd070) at eval.c:3040 > #9 0x00007ff7936d99a3 in exec_byte_code (fun=0x44e227d, > args_template=513, nargs=2, args=0x4cbd200) at bytecode.c:809 > #10 0x00007ff7936814f2 in fetch_and_exec_byte_code (fun=0x43ee9e5, > args_template=0, nargs=0, args=0xbff420) at eval.c:3085 > #11 0x00007ff793681899 in funcall_lambda (fun=0x43ee9e5, nargs=0, > arg_vector=0xbff420) at eval.c:3157 > #12 0x00007ff793681676 in apply_lambda (fun=0x43ee9e5, args=0x0, > count=...) at eval.c:3107 > #13 0x00007ff79367fb3f in eval_sub (form=0x48a614b) at eval.c:2549 > #14 0x00007ff79367f0af in Feval (form=0x48a614b, lexical=0x0) at eval.c:2365 > #15 0x00007ff7935ae82a in top_level_2 () at keyboard.c:1142 > #16 0x00007ff79367ce04 in internal_condition_case (bfun=0x7ff7935ae803 > , handlers=0x90, hfun=0x7ff7935adfad ) at > eval.c:1474 > #17 0x00007ff7935ae87c in top_level_1 (ignore=0x0) at keyboard.c:1150 > #18 0x00007ff79367c4ac in internal_catch (tag=0x103b0, > func=0x7ff7935ae82f , arg=0x0) at eval.c:1197 > #19 0x00007ff7935ae6d2 in command_loop () at keyboard.c:1110 > #20 0x0000000000000000 in ?? () > (gdb) info locals > cache = {ret = 1, Name = 0x2606560 "Vladimir.Sironja", DomainName = > 0x26065b0 "EDGE", peUse = SidTypeUser} > been_here_count = 4 > s_pfn_Lookup_Account_Sid = 0x7ff9e0d9bc20 > hm_advapi32 = 0x0 > ret = 0 > (gdb) continue > Continuing. > [New Thread 20812.0x4f7c] > [New Thread 20812.0x6d38] > [New Thread 20812.0x4a54] > > here emacs comes up. > > So for some reason been_here_count = 4. This tells me: . the first 2 calls are from init_user_info, where we obtain and record the user SID and the Group SID of your user . the next 2 calls are from file-attributes, where Emacs for some reason needed to obtain the owner and owner's group of the directory "c:/Development/emacs-emacs-29.4/src" These are different calls for different purposes: they obtain both the user and group SID (which are different SID values), and there's no guarantee that the directory "c:/Development/emacs-emacs-29.4/src" is necessarily owned by your user. So I don't see how caching could help here, and still produce the correct results. You could avoid the second pair of calls (and many similar calls in other cases where Emacs calls file-attributes) if you set the variable w32-get-true-file-attributes to the nil value. Maybe this makes startup faster in your case.