GNU bug report logs - #74202
31.0.50; package-el fails to delete outdated elpa packages

Previous Next

Package: emacs;

Reported by: Johann Höchtl <johann.hoechtl <at> gmail.com>

Date: Mon, 4 Nov 2024 08:01:01 UTC

Severity: normal

Found in version 31.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 74202 in the body.
You can then email your comments to 74202 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#74202; Package emacs. (Mon, 04 Nov 2024 08:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Johann Höchtl <johann.hoechtl <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 04 Nov 2024 08:01:02 GMT) Full text and rfc822 format available.

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

From: Johann Höchtl <johann.hoechtl <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; package-el fails to delete outdated elpa packages
Date: Mon, 4 Nov 2024 09:00:31 +0100
[Message part 1 (text/plain, inline)]
Using Windows ucrt mps emacs build from

https://github.com/kiennq/emacs-build/releases/tag/v31.319.20241101.0cb75cf



Since like two months or so, most notably package-el, but also other file
deleting operations like expiring eww cache, fails to delete files in
.emacs directory on Windows. The error message is "permission denied". I do
run emacs as the interactively logged in user. FWIW I start emacs from a
bash command line as runemacs.exe



Manually deleting files from within dired in the .emacs-directory works so
I do not think it is a permission issue.





In GNU Emacs 31.0.50 (build 1, x86_64-w64-mingw32) of 2024-11-01 built

 on fv-az742-134

Repository revision: 0cb75cf1479375db092a3d14b5ec7ce996d3e598

Repository branch: HEAD

Windowing system distributor 'Microsoft Corp.', version 10.0.19045

System Description: Microsoft Windows 10 Enterprise (v10.0.2009.19045.5011)



Configured using:

 'configure

 --prefix=/d/a/emacs-build/emacs-build/pkg/0cb75cf-ucrt-x86_64

 'CFLAGS=-O2 -fno-semantic-interposition -floop-parallelize-all

 -ftree-parallelize-loops=4 -g3 ' --disable-build-details --without-dbus

 --enable-link-time-optimization --enable-build-details

 --with-compress-install --with-small-ja-dic --with-gif --with-gnutls

 --with-harfbuzz --with-jpeg --with-json --with-lcms2 --with-mps

 --with-native-compilation --with-png --with-rsvg --with-tree-sitter

 --with-xml2 --with-xpm --with-zlib --without-cairo --without-tiff'



Configured features:

ACL GIF GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBXML2 MODULES MPS NATIVE_COMP

NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS

TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB



Important settings:

  value of $LC_ALL: en_US.UTF-8

  value of $LANG: C.UTF-8

  locale-coding-system: cp1252



Major mode: elisp-compile



Minor modes in effect:

  global-git-commit-mode: t

  magit-auto-revert-mode: t

  corfu-terminal-mode: t

  winner-mode: t

  windmove-mode: t

  savehist-mode: t

  save-place-mode: t

  recentf-mode: t

  pixel-scroll-precision-mode: t

  marginalia-mode: t

  global-auto-revert-mode: t

  icomplete-mode: t

  fido-mode: t

  desktop-save-mode: t

  delete-selection-mode: t

  override-global-mode: t

  tooltip-mode: t

  global-eldoc-mode: t

  show-paren-mode: t

  electric-indent-mode: t

  mouse-wheel-mode: t

  tool-bar-mode: t

  tab-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

  buffer-read-only: t

  column-number-mode: t

  line-number-mode: t

  transient-mark-mode: t

  auto-composition-mode: t

  auto-encryption-mode: t

  auto-compression-mode: t



Load-path shadows:

c:/Users/HoechtlJ/OneDrive - WKO
Online/Dokumente/.emacs.d/elpa/transient-20241102.1229/transient hides
c:/Users/HoechtlJ/AppData/Local/Emacs/share/emacs/31.0.50/lisp/transient



Features:

(shadow sort mail-extr emacsbug find-dired project ffap grep misearch

multi-isearch ediff ediff-merg ediff-mult ediff-wind ediff-diff

ediff-help ediff-init ediff-util let-alist magit-bookmark bookmark

magit-submodule magit-blame magit-stash magit-reflog magit-bisect

magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit

magit-sequence magit-notes magit-worktree magit-tag magit-merge

magit-branch magit-reset magit-files magit-refs magit-status magit

magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff

git-commit magit-core magit-autorevert magit-margin magit-transient

magit-process with-editor shell pcomplete server log-edit pcvs-util

add-log magit-mode transient magit-git magit-base which-func imenu

magit-section crm benchmark cursor-sensor dash comp comp-cstr warnings

format-spec display-fill-column-indicator yasnippet hideshow

loaddefs-gen lisp-mnt radix-tree tar-mode arc-mode archive-mode

mm-archive message sendmail rfc822 mml mml-sec epa derived gnus-util

mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils

mule-util gnutls network-stream url-cache url-http url-auth mail-parse

rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny

epg rfc6068 epg-config display-line-numbers vc-git diff-mode

track-changes files-x vc-dispatcher dired-aux dired dired-loaddefs

impatient-mode htmlize simple-httpd pp time-date corfu-terminal popon

corfu visual-wrap word-wrap-mode compile text-property-search comint

ansi-osc ansi-color comp-run comp-common flyspell ispell yank-media

markdown-mode edit-indirect rx color thingatpt noutline outline

deeper-blue-theme winner windmove savehist saveplace recentf tree-widget

wid-edit pixel-scroll cua-base ring marginalia autorevert filenotify

icomplete desktop frameset delsel cus-load edmacro kmacro

use-package-bind-key bind-key easy-mmode orderless compat cl-extra

help-mode use-package-ensure use-package-core finder-inf cape-autoloads

corfu-terminal-autoloads corfu-autoloads csv-mode-autoloads

d2-mode-autoloads dape-autoloads dired-sidebar-autoloads

dired-subtree-autoloads dired-hacks-utils-autoloads

edit-indirect-autoloads go-mode-autoloads hideshowvis-autoloads

impatient-showdown-autoloads impatient-mode-autoloads htmlize-autoloads

indent-bars-autoloads magit-autoloads pcase magit-section-autoloads

dash-autoloads marginalia-autoloads markdown-mode-autoloads

olivetti-autoloads orderless-autoloads popon-autoloads

simple-httpd-autoloads transient-autoloads vundo-autoloads info

with-editor-autoloads yasnippet-autoloads package browse-url url

url-proxy url-privacy url-expand url-methods url-history url-cookie

generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse

auth-source cl-seq eieio eieio-core cl-macs icons password-cache json

subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib

rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook

vc-hooks lisp-float-type elisp-mode mwheel touch-screen dos-w32 ls-lisp

disp-table term/w32-win w32-win w32-vars term/common-win 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 mps emacs)



Memory information:

((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0)

 (vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0)

 (intervals 64 0 0) (buffers 1000 0))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74202; Package emacs. (Mon, 04 Nov 2024 08:08:02 GMT) Full text and rfc822 format available.

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

From: Johann Höchtl <johann.hoechtl <at> gmail.com>
To: 74202 <at> debbugs.gnu.org
Subject: Addendum: full error message
Date: Mon, 4 Nov 2024 09:06:12 +0100
[Message part 1 (text/plain, inline)]
The full error message is:

Error when expiring the cache: (permission-denied Removing directory
Permission denied c:/Users/HoechtlJ/OneDrive - WKO
Online/Dokumente/.emacs.d/url/cache/HoechtlJ/https/org/gnu/www)

The directory unfortunately contains blanks, so it's possibly not a
permission error at all but emacs actually trying to delete another
directory but the one for which the error message gets printed?
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74202; Package emacs. (Mon, 04 Nov 2024 13:02:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Johann Höchtl <johann.hoechtl <at> gmail.com>
Cc: 74202 <at> debbugs.gnu.org
Subject: Re: bug#74202: 31.0.50;
 package-el fails to delete outdated elpa packages
Date: Mon, 04 Nov 2024 15:01:48 +0200
> From: Johann Höchtl <johann.hoechtl <at> gmail.com>
> Date: Mon, 4 Nov 2024 09:00:31 +0100
> 
> Using Windows ucrt mps emacs build from
> 
> https://github.com/kiennq/emacs-build/releases/tag/v31.319.20241101.0cb75cf
> 
>  
> 
> Since like two months or so, most notably package-el, but also other file deleting operations like expiring eww
> cache, fails to delete files in .emacs directory on Windows. The error message is "permission denied". I do
> run emacs as the interactively logged in user. FWIW I start emacs from a bash command line as
> runemacs.exe
> 
>  
> 
> Manually deleting files from within dired in the .emacs-directory works so I do not think it is a permission
> issue.

Thanks, but that site has local patches to Emacs, and two months is a
very long time.  It also uses UCRT, which is not really supported for
the Windows builds, as we have no one who'd agree to maintain such a
build and take care of any issues that arise with it.

So to investigate this issue someone with access to that build should
catch these errors in a debugger and show the details: which file
cannot be removed, what is the Windows error code when we try to
remove it, etc.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74202; Package emacs. (Mon, 04 Nov 2024 13:12:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Johann Höchtl <johann.hoechtl <at> gmail.com>
Cc: 74202 <at> debbugs.gnu.org
Subject: Re: bug#74202: 31.0.50;
 package-el fails to delete outdated elpa packages
Date: Mon, 04 Nov 2024 15:11:51 +0200
[Please don't change the Subject of the responses and followups.]

> From: Johann Höchtl <johann.hoechtl <at> gmail.com>
> Date: Mon, 4 Nov 2024 09:06:12 +0100
> 
> The full error message is:
> 
> Error when expiring the cache: (permission-denied Removing directory Permission denied
> c:/Users/HoechtlJ/OneDrive - WKO Online/Dokumente/.emacs.d/url/cache/HoechtlJ/https/org/gnu/www)

What is the Lisp code which triggers this error message?  IOW, please
show the Lisp code which "expires the cache".

> The directory unfortunately contains blanks, so it's possibly not a permission error at all but emacs actually
> trying to delete another directory but the one for which the error message gets printed?

Why would blanks in the directory name cause Emacs to try to delete a
different directory?  Emacs doesn't delete directories via the shell,
where this could be a problem, it deletes them by calling Windows
APIs.

Since this directory seems to be on OneDrive, I suspect that these are
not "normal" Windows files, but some kind of junction points or some
other filesystem wizardry that Emacs doesn't understand.  Please try
producing a standalone self-contained recipe for reproducing the
problem starting from "emacs -Q", preferably without installing any
ELPA packages.  Since the issue is with removing files from a
directory, presumably the problem has nothing to do with package.el
per se, but with basic file I/O, and so you should be able to find a
way of reproducing it by simply removing files from a directory,
perhaps if the directory is on OneDrive.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#74202; Package emacs. (Mon, 04 Nov 2024 13:39:02 GMT) Full text and rfc822 format available.

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

From: Johann Höchtl <johann.hoechtl <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 74202 <at> debbugs.gnu.org
Subject: Re: bug#74202: 31.0.50;
 package-el fails to delete outdated elpa packages
Date: Mon, 4 Nov 2024 14:37:17 +0100
[Message part 1 (text/plain, inline)]
Dear Eli,

thank you for your response(s). I understand that this build is not
officially supported. Upon further investigation I think the culprit is
likely UCRT, as the directories are created without write permissions.
Former versions of Emacs, which used a different C runtime, created
directories with read/write permissions.

Therefore I will report the issue at the appropriate build site.

Best, Johann

Am Mo., 4. Nov. 2024 um 14:11 Uhr schrieb Eli Zaretskii <eliz <at> gnu.org>:

> [Please don't change the Subject of the responses and followups.]
>
> > From: Johann Höchtl <johann.hoechtl <at> gmail.com>
> > Date: Mon, 4 Nov 2024 09:06:12 +0100
> >
> > The full error message is:
> >
> > Error when expiring the cache: (permission-denied Removing directory
> Permission denied
> > c:/Users/HoechtlJ/OneDrive - WKO
> Online/Dokumente/.emacs.d/url/cache/HoechtlJ/https/org/gnu/www)
>
> What is the Lisp code which triggers this error message?  IOW, please
> show the Lisp code which "expires the cache".
>
> > The directory unfortunately contains blanks, so it's possibly not a
> permission error at all but emacs actually
> > trying to delete another directory but the one for which the error
> message gets printed?
>
> Why would blanks in the directory name cause Emacs to try to delete a
> different directory?  Emacs doesn't delete directories via the shell,
> where this could be a problem, it deletes them by calling Windows
> APIs.
>
> Since this directory seems to be on OneDrive, I suspect that these are
> not "normal" Windows files, but some kind of junction points or some
> other filesystem wizardry that Emacs doesn't understand.  Please try
> producing a standalone self-contained recipe for reproducing the
> problem starting from "emacs -Q", preferably without installing any
> ELPA packages.  Since the issue is with removing files from a
> directory, presumably the problem has nothing to do with package.el
> per se, but with basic file I/O, and so you should be able to find a
> way of reproducing it by simply removing files from a directory,
> perhaps if the directory is on OneDrive.
>
[Message part 2 (text/html, inline)]

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

Notification sent to Johann Höchtl <johann.hoechtl <at> gmail.com>:
bug acknowledged by developer. (Sat, 09 Nov 2024 11:06:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Johann Höchtl <johann.hoechtl <at> gmail.com>
Cc: 74202-done <at> debbugs.gnu.org
Subject: Re: bug#74202: 31.0.50;
 package-el fails to delete outdated elpa packages
Date: Sat, 09 Nov 2024 13:05:15 +0200
> From: Johann Höchtl <johann.hoechtl <at> gmail.com>
> Date: Mon, 4 Nov 2024 14:37:17 +0100
> Cc: 74202 <at> debbugs.gnu.org
> 
> thank you for your response(s). I understand that this build is not officially supported. Upon further
> investigation I think the culprit is likely UCRT, as the directories are created without write permissions. Former
> versions of Emacs, which used a different C runtime, created directories with read/write permissions.
> 
> Therefore I will report the issue at the appropriate build site.

Thanks, I'm therefore closing this bug.




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

This bug report was last modified 195 days ago.

Previous Next


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