GNU bug report logs - #67006
30.0.50; w32-shell-execute will freeze Emacs on Windows 10

Previous Next

Package: emacs;

Reported by: Eason Huang <aqua0210 <at> foxmail.com>

Date: Thu, 9 Nov 2023 02:44:02 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 67006 in the body.
You can then email your comments to 67006 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#67006; Package emacs. (Thu, 09 Nov 2023 02:44:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eason Huang <aqua0210 <at> foxmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 09 Nov 2023 02:44:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eason Huang <aqua0210 <at> foxmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; w32-shell-execute will freeze Emacs on Windows 10
Date: Thu, 09 Nov 2023 10:35:09 +0800
Hell Emacs,

I found that when running w32-shell-execute with "open" will cause Emacs
freeze. And I have to kill the process of Emacs to restart.

Steps to reproduce:

1. Start Emacs with `emacs -Q`
2. M-: to eval the code below, you can change the second arg to other folder: 
```
(w32-shell-execute "open" "~/.emacs.d/")
```

3. Now the Emacs is frozen, C-Q also can not recover it. So you have to
kill process of Emacs, and restart Emacs again.


Best regards,

Eason Huang


In GNU Emacs 30.0.50 (build 1, x86_64-w64-mingw32) of 2023-11-09 built
 on DESKTOP-VIHFE84
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3570)

Configured using:
 'configure --with-native-compilation=aot --without-dbus 'CFLAGS=-O2
 -fno-optimize-sibling-calls''

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

Important settings:
  value of $LANG: CHS
  locale-coding-system: cp936

Major mode: ELisp/d

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils compile text-property-search
comint ansi-osc ansi-color ring comp cl-seq comp-cstr cl-extra help-mode
warnings icons subr-x rx gv bytecomp byte-compile vc-git diff-mode
easy-mmode vc-dispatcher cl-loaddefs cl-lib china-util rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win touch-screen tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty
move-toolbar make-network-process native-compile emacs)

Memory information:
((conses 16 98361 13532) (symbols 48 8278 0) (strings 32 24487 1925)
 (string-bytes 1 724252) (vectors 16 19580)
 (vector-slots 8 431419 16728) (floats 8 48 64) (intervals 56 524 22)
 (buffers 992 15))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67006; Package emacs. (Thu, 09 Nov 2023 19:24:01 GMT) Full text and rfc822 format available.

Message #8 received at 67006 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Eason Huang <aqua0210 <at> foxmail.com>
Cc: 67006 <at> debbugs.gnu.org
Subject: Re: bug#67006: 30.0.50;
 w32-shell-execute will freeze Emacs on Windows 10
Date: Thu, 09 Nov 2023 21:22:22 +0200
> From: Eason Huang <aqua0210 <at> foxmail.com>
> Date: Thu, 09 Nov 2023 10:35:09 +0800
> 
> I found that when running w32-shell-execute with "open" will cause Emacs
> freeze. And I have to kill the process of Emacs to restart.
> 
> Steps to reproduce:
> 
> 1. Start Emacs with `emacs -Q`
> 2. M-: to eval the code below, you can change the second arg to other folder: 
> ```
> (w32-shell-execute "open" "~/.emacs.d/")
> ```
> 
> 3. Now the Emacs is frozen, C-Q also can not recover it. So you have to
> kill process of Emacs, and restart Emacs again.

I cannot reproduce this.  I tried this on several Windows systems and
several Emacs versions, including Windows 10 and Emacs 30, and I don't
see the hang.  (I don't have a Windows 10 system with Emacs 30, so I
tested there with an older version, but unless you are saying that
this happens only with Emacs 30 and only on Windows 10, I don't think
this matters.)

Tell me, does the directory "~/.emacs.d/" exist on that system?  If
you type "C-x C-f ~/.e" and press TAB, do you see ".emacs.d" among the
completion candidates?

Another thing to check is whether you customized your Windows system
in a way that affects the "open" operation on directories.

Also, what happens if you type

  M-: (w32-shell-execute nil "~/.emacs.d/")

?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67006; Package emacs. (Fri, 10 Nov 2023 02:00:02 GMT) Full text and rfc822 format available.

Message #11 received at 67006 <at> debbugs.gnu.org (full text, mbox):

From: Eason Huang <aqua0210 <at> foxmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 67006 <at> debbugs.gnu.org
Subject: Re: bug#67006: 30.0.50; w32-shell-execute will freeze Emacs on
 Windows 10
Date: Fri, 10 Nov 2023 09:58:17 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

> I cannot reproduce this.  I tried this on several Windows systems and
> several Emacs versions, including Windows 10 and Emacs 30, and I don't
> see the hang.  (I don't have a Windows 10 system with Emacs 30, so I
> tested there with an older version, but unless you are saying that
> this happens only with Emacs 30 and only on Windows 10, I don't think
> this matters.)

agree. actually this issue also happend on Emacs 29.2

I tested this version of Emacs 29:
http://mirrors.syringanetworks.net/gnu/emacs/windows/emacs-29/emacs-29.1_2.zip

> Tell me, does the directory "~/.emacs.d/" exist on that system?  If
> you type "C-x C-f ~/.e" and press TAB, do you see ".emacs.d" among the
> completion candidates?

Yes, I can confirm that the .emacs.d folder exist.

> Another thing to check is whether you customized your Windows system
> in a way that affects the "open" operation on directories.
>
> Also, what happens if you type
>
>   M-: (w32-shell-execute nil "~/.emacs.d/")

When I try `M-: (w32-shell-execute nil "~/.emacs.d/")`, it works as
expected. the .emacs.d folder will shows in the Windows Explorer.

I also try `M-: (w32-shell-execute "open" "~/.emacs.d/init.el")`,
it aslo works as expected, the init.el will be open with the default
notepad editor.


Another infomation about this issue, may be it is related:

I also tried to reproduce the issue on my other Windows machine with
Windows 10 and Emacs 30.

At the fist time I tried it, every things is working as expected. I also
can not reproduce the issue on that machine.

But after I installed the PowerToys  by
`winget installMicrosoft.PowerToys`, and luanch the powertoys then I can
reprodue the issue. Maybe the issue is related to PowerToys?

About the PowerToys: https://github.com/microsoft/PowerToys

But I uninstall the PowerToys, then restart that machine, the issue
still existed.


Best regard,

Eason Huang





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67006; Package emacs. (Fri, 10 Nov 2023 07:21:02 GMT) Full text and rfc822 format available.

Message #14 received at 67006 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Eason Huang <aqua0210 <at> foxmail.com>
Cc: 67006 <at> debbugs.gnu.org
Subject: Re: bug#67006: 30.0.50; w32-shell-execute will freeze Emacs on
 Windows 10
Date: Fri, 10 Nov 2023 09:19:48 +0200
> From: Eason Huang <aqua0210 <at> foxmail.com>
> Cc: 67006 <at> debbugs.gnu.org
> Date: Fri, 10 Nov 2023 09:58:17 +0800
> 
> > Also, what happens if you type
> >
> >   M-: (w32-shell-execute nil "~/.emacs.d/")
> 
> When I try `M-: (w32-shell-execute nil "~/.emacs.d/")`, it works as
> expected. the .emacs.d folder will shows in the Windows Explorer.

Then at least you have a workaround, since "open" is the default
operation for directories.

> I also tried to reproduce the issue on my other Windows machine with
> Windows 10 and Emacs 30.
> 
> At the fist time I tried it, every things is working as expected. I also
> can not reproduce the issue on that machine.
> 
> But after I installed the PowerToys  by
> `winget installMicrosoft.PowerToys`, and luanch the powertoys then I can
> reprodue the issue. Maybe the issue is related to PowerToys?
> 
> About the PowerToys: https://github.com/microsoft/PowerToys

I see that it includes "File Explorer add-ons", which could definitely
be the reason for what you see.

> But I uninstall the PowerToys, then restart that machine, the issue
> still existed.

It is possible that uninstalling PowerToys doesn't clean up the
Registry.

Anyway, I think this is not an Emacs bug, in which case we should
close it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67006; Package emacs. (Fri, 10 Nov 2023 23:30:02 GMT) Full text and rfc822 format available.

Message #17 received at 67006 <at> debbugs.gnu.org (full text, mbox):

From: Eason Huang <aqua0210 <at> foxmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 67006 <at> debbugs.gnu.org
Subject: Re: bug#67006: 30.0.50; w32-shell-execute will freeze Emacs on
 Windows 10
Date: Sat, 11 Nov 2023 07:28:40 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

> I see that it includes "File Explorer add-ons", which could definitely
> be the reason for what you see.
>
>> But I uninstall the PowerToys, then restart that machine, the issue
>> still existed.
>
> It is possible that uninstalling PowerToys doesn't clean up the
> Registry.
>
> Anyway, I think this is not an Emacs bug, in which case we should
> close it.
>

Sure, feel free to close the bug, if it is not an Emacs bug.


I also find another instresting thing:

1. Eval `(w32-shell-execute "open" "C:/Windows/SysWOW64/")` will freeze
Emacs.

2. Eval `(executable-find "C:/Windows/SysWOW64/explorer")` one time, and
then eval `(w32-shell-execute "open" "C:/Windows/SysWOW64/")` will open
the "C:/Windows/SysWOW64/" folder.

3. And then `(w32-shell-execute "open" "C:/Windows/SysWOW64/")` always
works.

reboot computer, issue exist again.


Do you have any advice on the above case?



-- 
Eason Huang





Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 11 Nov 2023 07:14:02 GMT) Full text and rfc822 format available.

Notification sent to Eason Huang <aqua0210 <at> foxmail.com>:
bug acknowledged by developer. (Sat, 11 Nov 2023 07:14:02 GMT) Full text and rfc822 format available.

Message #22 received at 67006-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Eason Huang <aqua0210 <at> foxmail.com>
Cc: 67006-done <at> debbugs.gnu.org
Subject: Re: bug#67006: 30.0.50; w32-shell-execute will freeze Emacs on
 Windows 10
Date: Sat, 11 Nov 2023 09:12:55 +0200
> From: Eason Huang <aqua0210 <at> foxmail.com>
> Cc: 67006 <at> debbugs.gnu.org
> Date: Sat, 11 Nov 2023 07:28:40 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Anyway, I think this is not an Emacs bug, in which case we should
> > close it.
> 
> Sure, feel free to close the bug, if it is not an Emacs bug.

Done.

> I also find another instresting thing:
> 
> 1. Eval `(w32-shell-execute "open" "C:/Windows/SysWOW64/")` will freeze
> Emacs.
> 
> 2. Eval `(executable-find "C:/Windows/SysWOW64/explorer")` one time, and
> then eval `(w32-shell-execute "open" "C:/Windows/SysWOW64/")` will open
> the "C:/Windows/SysWOW64/" folder.
> 
> 3. And then `(w32-shell-execute "open" "C:/Windows/SysWOW64/")` always
> works.
> 
> reboot computer, issue exist again.
> 
> 
> Do you have any advice on the above case?

I cannot reproduce it.  Is this again on those systems where you have
PowerToys installed?

In any case, my Emacs is a 32-bit build, so maybe that is a factor
(since SysWOW64 is a special directory for 32-bit programs running on
64-bit Windows).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67006; Package emacs. (Sun, 12 Nov 2023 02:35:02 GMT) Full text and rfc822 format available.

Message #25 received at 67006 <at> debbugs.gnu.org (full text, mbox):

From: Eason Huang <aqua0210 <at> foxmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 67006 <at> debbugs.gnu.org
Subject: Re: bug#67006: 30.0.50; w32-shell-execute will freeze Emacs on
 Windows 10
Date: Sun, 12 Nov 2023 10:33:45 +0800
Eason Huang <aqua0210 <at> foxmail.com> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> I cannot reproduce it.  Is this again on those systems where you have
> PowerToys installed?
Yes, on the systems with PowerToys installed.
Because I cannot clean the regstry unless reinstall the Windows OS.

> In any case, my Emacs is a 32-bit build, so maybe that is a factor
> (since SysWOW64 is a special directory for 32-bit programs running on
> 64-bit Windows).
Maybe this is the root case of the issue.

Anyway, recently I can add "C:/Windows/SysWOW64" to exec-path as
workaroud.

Add this code to early-init.el works as expected:
```
(add-to-list 'exec-path "C:/Windows/SysWOW64")
```


Best regards,

Eason Huang





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 10 Dec 2023 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 152 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.