GNU bug report logs - #76096
31.0.50; recentf should not pre-emptively connect to remotes

Previous Next

Package: emacs;

Reported by: Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>

Date: Thu, 6 Feb 2025 13:35:02 UTC

Severity: normal

Tags: unreproducible

Found in version 31.0.50

Done: Michael Albinus <michael.albinus <at> gmx.de>

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 76096 in the body.
You can then email your comments to 76096 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#76096; Package emacs. (Thu, 06 Feb 2025 13:35:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 06 Feb 2025 13:35:02 GMT) Full text and rfc822 format available.

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

From: Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; recentf should not pre-emptively connect to remotes
Date: Thu, 06 Feb 2025 22:33:55 +0900
Hi there,


I am aware that recentf is documented as establishing connections to
remote files. I am also aware of the suggested solution of setting
remote-file-name-access-timeout. I argue this is not a solution.

remote-file-name-access-timeout is useful after startup if I try and
visit a file that is no longer accessible yes, but recentf eagerly doing
so when I start Emacs -- and so me having to wait for this timeout
before I can even use Emacs -- is asinine. I could add logic to set the
timeout incredibly low at startup and then increase it afterwards but
then it still results in Tramp trying to connect, and it still clobbers
Emacs' state with hidden connection history buffers.

recentf's description states:

This package maintains a list of recently opened files and makes it
easy to visit them.  The recent files list is automatically saved
across Emacs sessions.

I argue it's unhelpful that recentf is so eager (by default) to validate
a recently opened file is visitable when a very realistic consequence of
that not being the case is Emacs freezes, and extra logic beyond "load
this list of remembered file names" occurs. I'd also argue as a user I
didn't ask recentf to do that, all I asked it to do was recall a _list
of files_ and not _recall a list of files, and then also execute
arbitrary commands to establish a remote connection ahead of time to
validate that this list contains files which can still be accessed should
you want to, even if you never do_.

I think if a user wants recentf to do this validation ahead of time they
should be given the explicit option to _enable_ that and that by default
all recentf should do is load the list it saves from disk. In general
this looks to be a problem with any Tramp-syntax file as I also reported
with saveplace establishing connections when all it should be doing is
recalling a list of file names and offsets in those files.

remote-file-name-access-timeout is not the option to control this
behaviour as it's unintuitive. When I attempt to explicitly visit a file
that is when, I feel, remote-file-name-access-timeout applies.

For example, if my suggestions were enacted here this API would result
in the current eager-behaviour:

(use-package recentf
  :config
  (recentf-eagerly-validate-liveness t))

With recentf-eagerly-validate-liveness being an explicit opt-in to behave
as it currently does, and perhaps a specific eager-validate timeout.
This way a user states that they are fine with Emacs potentially
freezing on startup, and that they are fine for a slew of arbitrary Tramp commands to run
on startup.

I apologise if this is pointed but these eager-helpful behaviours being
implicit results in hard to diagnose problems and unexpected behaviour
which is frustrating to deal with, especially so given they are part of
default behaviour for recentf and others, with no proper opt-out
approach. In-general removing this kind of behaviour feels a lot harder
than it ought to be.

I believe desktop.el behaves similarly but I have yet to look into that.
If so, I would echo statements here for that.


/Jordan


In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin23.6.0, NS
 appkit-2487.70 Version 14.7.2 (Build 23H311)) of 2025-02-04 built on
 yote.local
Repository revision: 1639ad2814ae100c9f878a1388eb9ffc9d208b07
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.7.2

Configured using:
 'configure --prefix=/opt/local --disable-silent-rules --without-dbus
 --without-gconf --without-libotf --without-m17n-flt --with-libgmp
 --with-gnutls --with-xml2 --with-modules --with-sqlite3 --with-webp
 --infodir /opt/local/share/info/emacs --disable-gc-mark-trace --with-ns
 --with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d
 --with-rsvg --with-xwidgets --with-native-compilation=aot
 --with-tree-sitter 'CFLAGS=-pipe -O2 -march=native -mtune=native
 -Wno-attributes
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch
 arm64' 'CPPFLAGS=-I/opt/local/include
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk'
 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie
 -Wl,-rpath /opt/local/lib/gcc14 -Wl,-rpath /opt/local/lib
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk
 -arch arm64''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY
KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS ZLIB

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_AU.UTF-8
  locale-coding-system: utf-8

Major mode: Fundamental

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  global-auto-revert-mode: t
  mlscroll-mode: t
  vertico-mode: t
  marginalia-mode: t
  eat-eshell-mode: t
  tabspaces-mode: t
  popper-echo-mode: t
  popper-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  meow-global-mode: t
  meow-mode: t
  meow-normal-mode: t
  delete-selection-mode: t
  meow-esc-mode: t
  which-key-mode: t
  electric-pair-mode: t
  elpaca-use-package-mode: t
  override-global-mode: t
  display-battery-mode: t
  savehist-mode: t
  global-visual-wrap-prefix-mode: t
  visual-wrap-prefix-mode: t
  global-hl-line-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
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  column-number-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:
/Users/tsujp/.config/emacs/elpaca/builds/modus-themes/theme-loaddefs hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/theme-loaddefs
/Users/tsujp/.config/emacs/elpaca/builds/transient/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient

Features:
(shadow sort display-line-numbers whitespace mail-extr emacsbug
tramp-cmds js c-ts-common cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs org-indent oc-basic ol-eww
eww vtable url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo
gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview
doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m
ol-doi org-link-doi tramp-cache time-stamp tramp-sh inspector edebug
debug backtrace tree-inspector treeview keycast dap-mode dap-tasks
dap-launch lsp-docker yaml posframe dap-overlays lsp-mode lsp-protocol
xref tree-widget spinner network-stream nsm markdown-mode lv ht ewoc
embark-consult consult magit-bookmark bookmark embark-org embark ffap
htmlize zig-mode reformatter 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 package url-handlers magit-repos magit-apply
magit-wip magit-log which-func imenu magit-diff smerge-mode diff
diff-mode track-changes git-commit log-edit message sendmail yank-media
puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor comp comp-cstr server
magit-mode browse-url benchmark magit-git magit-base magit-section
cursor-sensor crm comp-run comp-common autorevert filenotify mlscroll
vertico marginalia eat term/xterm xterm term disp-table ehelp tabspaces
dired-x dired dired-loaddefs popper-echo popper org-transclusion
org-transclusion-font-lock org-transclusion-src-lines text-clone
org-element org-persist avl-tree org-remark org-remark-global-tracking
justl inheritenv f dash s esh-mode esh-var eshell esh-cmd generator
esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs
esh-util transient just-mode corfu-popupinfo corfu cus-start edmacro
orderless compat meow meow-tutor meow-cheatsheet meow-cheatsheet-layout
meow-core meow-shims delsel meow-esc meow-command array meow-thing
meow-visual meow-keypad meow-beacon meow-helpers meow-util color
meow-keymap meow-face meow-var avy modus-vivendi-theme modus-themes
exec-path-from-shell zig-mode-autoloads reformatter-autoloads
htmlize-autoloads embark-consult-autoloads embark-autoloads
popper-autoloads dap-mode-autoloads bui-autoloads lsp-treemacs-autoloads
treemacs-autoloads ace-window-autoloads pfuture-autoloads
hydra-autoloads cfrs-autoloads posframe-autoloads lsp-docker-autoloads
lsp-mode-autoloads spinner-autoloads markdown-mode-autoloads
lv-autoloads yaml-autoloads ht-autoloads keycast-autoloads
tree-inspector-autoloads treeview-autoloads inspector-autoloads
diff-hl-autoloads org-transclusion-autoloads org-remark-autoloads
consult-autoloads tabspaces-autoloads justl-autoloads f-autoloads
s-autoloads inheritenv-autoloads just-mode-autoloads eat-autoloads
magit-autoloads pcase magit-section-autoloads dash-autoloads
transient-autoloads with-editor-autoloads marginalia-autoloads
corfu-autoloads vertico-autoloads orderless-autoloads meow-autoloads
avy-autoloads mlscroll-autoloads modus-themes-autoloads
exec-path-from-shell-autoloads which-key time tramp trampver
tramp-integration files-x tramp-message tramp-compat xdg shell
parse-time iso8601 tramp-loaddefs kmacro org-id org-refile
org-element-ast inline elec-pair org-inlinetask org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src sh-script smie executable
ob-comint org-pcomplete pcomplete org-list org-footnote org-faces
org-entities time-date noutline outline org-version ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat
org-macs flymake project compile text-property-search comint ansi-osc
ansi-color ring warnings thingatpt go-ts-mode rx elpaca-menu-elpa
treesit vc vc-dispatcher elpaca-menu-melpa elpaca-menu-org
elpaca-use-package use-package use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode elpaca-use-package-autoloads
elpaca-log elpaca-ui url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util url-parse
auth-source eieio eieio-core password-cache json map byte-opt url-vars
mailcap elpaca elpaca-process elpaca-autoloads format-spec battery dbus
xml subr-x cl-extra help-mode savehist visual-wrap hl-line cl-macs gv
use-package-ensure cl-seq use-package-core bytecomp byte-compile
cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize
mule-util 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 xwidget-internal kqueue cocoa ns lcms2 multi-tty
make-network-process tty-child-frames native-compile emacs)

Memory information:
((conses 16 915507 610495) (symbols 48 58456 36) (strings 32 301345 56457)
 (string-bytes 1 7630160) (vectors 16 83554) (vector-slots 8 1016541 236273) (floats 8 670 469)
 (intervals 56 1149 647) (buffers 992 17))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Thu, 06 Feb 2025 13:46:01 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>
Cc: 76096 <at> debbugs.gnu.org
Subject: Re: bug#76096: 31.0.50;
 recentf should not pre-emptively connect to remotes
Date: Thu, 6 Feb 2025 08:43:48 -0500
[Message part 1 (text/plain, inline)]
If this is sufficient, you can use a predicate to filter out remote files:

  (defun my/recentf-keep-p (file)
    (and (not (file-remote-p file))
         (file-readable-p file)))
  (add-to-list 'recentf-keep #'my/recentf-keep-p)

On Thu, Feb 6, 2025 at 8:35 AM Jordan Ellis Coppard via Bug reports for GNU
Emacs, the Swiss army knife of text editors <bug-gnu-emacs <at> gnu.org> wrote:

> Hi there,
>
>
> I am aware that recentf is documented as establishing connections to
> remote files. I am also aware of the suggested solution of setting
> remote-file-name-access-timeout. I argue this is not a solution.
>
> remote-file-name-access-timeout is useful after startup if I try and
> visit a file that is no longer accessible yes, but recentf eagerly doing
> so when I start Emacs -- and so me having to wait for this timeout
> before I can even use Emacs -- is asinine. I could add logic to set the
> timeout incredibly low at startup and then increase it afterwards but
> then it still results in Tramp trying to connect, and it still clobbers
> Emacs' state with hidden connection history buffers.
>
> recentf's description states:
>
> This package maintains a list of recently opened files and makes it
> easy to visit them.  The recent files list is automatically saved
> across Emacs sessions.
>
> I argue it's unhelpful that recentf is so eager (by default) to validate
> a recently opened file is visitable when a very realistic consequence of
> that not being the case is Emacs freezes, and extra logic beyond "load
> this list of remembered file names" occurs. I'd also argue as a user I
> didn't ask recentf to do that, all I asked it to do was recall a _list
> of files_ and not _recall a list of files, and then also execute
> arbitrary commands to establish a remote connection ahead of time to
> validate that this list contains files which can still be accessed should
> you want to, even if you never do_.
>
> I think if a user wants recentf to do this validation ahead of time they
> should be given the explicit option to _enable_ that and that by default
> all recentf should do is load the list it saves from disk. In general
> this looks to be a problem with any Tramp-syntax file as I also reported
> with saveplace establishing connections when all it should be doing is
> recalling a list of file names and offsets in those files.
>
> remote-file-name-access-timeout is not the option to control this
> behaviour as it's unintuitive. When I attempt to explicitly visit a file
> that is when, I feel, remote-file-name-access-timeout applies.
>
> For example, if my suggestions were enacted here this API would result
> in the current eager-behaviour:
>
> (use-package recentf
>   :config
>   (recentf-eagerly-validate-liveness t))
>
> With recentf-eagerly-validate-liveness being an explicit opt-in to behave
> as it currently does, and perhaps a specific eager-validate timeout.
> This way a user states that they are fine with Emacs potentially
> freezing on startup, and that they are fine for a slew of arbitrary Tramp
> commands to run
> on startup.
>
> I apologise if this is pointed but these eager-helpful behaviours being
> implicit results in hard to diagnose problems and unexpected behaviour
> which is frustrating to deal with, especially so given they are part of
> default behaviour for recentf and others, with no proper opt-out
> approach. In-general removing this kind of behaviour feels a lot harder
> than it ought to be.
>
> I believe desktop.el behaves similarly but I have yet to look into that.
> If so, I would echo statements here for that.
>
>
> /Jordan
>
>
> In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin23.6.0, NS
>  appkit-2487.70 Version 14.7.2 (Build 23H311)) of 2025-02-04 built on
>  yote.local
> Repository revision: 1639ad2814ae100c9f878a1388eb9ffc9d208b07
> Windowing system distributor 'Apple', version 10.3.2487
> System Description:  macOS 14.7.2
>
> Configured using:
>  'configure --prefix=/opt/local --disable-silent-rules --without-dbus
>  --without-gconf --without-libotf --without-m17n-flt --with-libgmp
>  --with-gnutls --with-xml2 --with-modules --with-sqlite3 --with-webp
>  --infodir /opt/local/share/info/emacs --disable-gc-mark-trace --with-ns
>  --with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d
>  --with-rsvg --with-xwidgets --with-native-compilation=aot
>  --with-tree-sitter 'CFLAGS=-pipe -O2 -march=native -mtune=native
>  -Wno-attributes
>  -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch
>  arm64' 'CPPFLAGS=-I/opt/local/include
>  -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk'
>  'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie
>  -Wl,-rpath /opt/local/lib/gcc14 -Wl,-rpath /opt/local/lib
>  -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk
>  -arch arm64''
>
> Configured features:
> ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY
> KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
> TREE_SITTER WEBP XIM XWIDGETS ZLIB
>
> Important settings:
>   value of $LC_CTYPE: en_US.UTF-8
>   value of $LANG: en_AU.UTF-8
>   locale-coding-system: utf-8
>
> Major mode: Fundamental
>
> Minor modes in effect:
>   global-git-commit-mode: t
>   magit-auto-revert-mode: t
>   global-auto-revert-mode: t
>   mlscroll-mode: t
>   vertico-mode: t
>   marginalia-mode: t
>   eat-eshell-mode: t
>   tabspaces-mode: t
>   popper-echo-mode: t
>   popper-mode: t
>   corfu-popupinfo-mode: t
>   global-corfu-mode: t
>   corfu-mode: t
>   meow-global-mode: t
>   meow-mode: t
>   meow-normal-mode: t
>   delete-selection-mode: t
>   meow-esc-mode: t
>   which-key-mode: t
>   electric-pair-mode: t
>   elpaca-use-package-mode: t
>   override-global-mode: t
>   display-battery-mode: t
>   savehist-mode: t
>   global-visual-wrap-prefix-mode: t
>   visual-wrap-prefix-mode: t
>   global-hl-line-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
>   context-menu-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   minibuffer-regexp-mode: t
>   column-number-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:
> /Users/tsujp/.config/emacs/elpaca/builds/modus-themes/theme-loaddefs hides
> /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/theme-loaddefs
> /Users/tsujp/.config/emacs/elpaca/builds/transient/transient hides
> /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient
>
> Features:
> (shadow sort display-line-numbers whitespace mail-extr emacsbug
> tramp-cmds js c-ts-common cc-mode cc-fonts cc-guess cc-menus cc-cmds
> cc-styles cc-align cc-engine cc-vars cc-defs org-indent oc-basic ol-eww
> eww vtable url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
> nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
> gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo
> gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo
> gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview
> doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m
> ol-doi org-link-doi tramp-cache time-stamp tramp-sh inspector edebug
> debug backtrace tree-inspector treeview keycast dap-mode dap-tasks
> dap-launch lsp-docker yaml posframe dap-overlays lsp-mode lsp-protocol
> xref tree-widget spinner network-stream nsm markdown-mode lv ht ewoc
> embark-consult consult magit-bookmark bookmark embark-org embark ffap
> htmlize zig-mode reformatter 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 package url-handlers magit-repos magit-apply
> magit-wip magit-log which-func imenu magit-diff smerge-mode diff
> diff-mode track-changes git-commit log-edit message sendmail yank-media
> puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
> mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
> ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
> pcvs-util add-log magit-core magit-autorevert magit-margin
> magit-transient magit-process with-editor comp comp-cstr server
> magit-mode browse-url benchmark magit-git magit-base magit-section
> cursor-sensor crm comp-run comp-common autorevert filenotify mlscroll
> vertico marginalia eat term/xterm xterm term disp-table ehelp tabspaces
> dired-x dired dired-loaddefs popper-echo popper org-transclusion
> org-transclusion-font-lock org-transclusion-src-lines text-clone
> org-element org-persist avl-tree org-remark org-remark-global-tracking
> justl inheritenv f dash s esh-mode esh-var eshell esh-cmd generator
> esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs
> esh-util transient just-mode corfu-popupinfo corfu cus-start edmacro
> orderless compat meow meow-tutor meow-cheatsheet meow-cheatsheet-layout
> meow-core meow-shims delsel meow-esc meow-command array meow-thing
> meow-visual meow-keypad meow-beacon meow-helpers meow-util color
> meow-keymap meow-face meow-var avy modus-vivendi-theme modus-themes
> exec-path-from-shell zig-mode-autoloads reformatter-autoloads
> htmlize-autoloads embark-consult-autoloads embark-autoloads
> popper-autoloads dap-mode-autoloads bui-autoloads lsp-treemacs-autoloads
> treemacs-autoloads ace-window-autoloads pfuture-autoloads
> hydra-autoloads cfrs-autoloads posframe-autoloads lsp-docker-autoloads
> lsp-mode-autoloads spinner-autoloads markdown-mode-autoloads
> lv-autoloads yaml-autoloads ht-autoloads keycast-autoloads
> tree-inspector-autoloads treeview-autoloads inspector-autoloads
> diff-hl-autoloads org-transclusion-autoloads org-remark-autoloads
> consult-autoloads tabspaces-autoloads justl-autoloads f-autoloads
> s-autoloads inheritenv-autoloads just-mode-autoloads eat-autoloads
> magit-autoloads pcase magit-section-autoloads dash-autoloads
> transient-autoloads with-editor-autoloads marginalia-autoloads
> corfu-autoloads vertico-autoloads orderless-autoloads meow-autoloads
> avy-autoloads mlscroll-autoloads modus-themes-autoloads
> exec-path-from-shell-autoloads which-key time tramp trampver
> tramp-integration files-x tramp-message tramp-compat xdg shell
> parse-time iso8601 tramp-loaddefs kmacro org-id org-refile
> org-element-ast inline elec-pair org-inlinetask org ob ob-tangle ob-ref
> ob-lob ob-table ob-exp org-macro org-src sh-script smie executable
> ob-comint org-pcomplete pcomplete org-list org-footnote org-faces
> org-entities time-date noutline outline org-version ob-emacs-lisp
> ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
> oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat
> org-macs flymake project compile text-property-search comint ansi-osc
> ansi-color ring warnings thingatpt go-ts-mode rx elpaca-menu-elpa
> treesit vc vc-dispatcher elpaca-menu-melpa elpaca-menu-org
> elpaca-use-package use-package use-package-delight use-package-diminish
> use-package-bind-key bind-key easy-mmode elpaca-use-package-autoloads
> elpaca-log elpaca-ui url url-proxy url-privacy url-expand url-methods
> url-history url-cookie generate-lisp-file url-domsuf url-util url-parse
> auth-source eieio eieio-core password-cache json map byte-opt url-vars
> mailcap elpaca elpaca-process elpaca-autoloads format-spec battery dbus
> xml subr-x cl-extra help-mode savehist visual-wrap hl-line cl-macs gv
> use-package-ensure cl-seq use-package-core bytecomp byte-compile
> cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl
> tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
> lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize
> mule-util 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 xwidget-internal kqueue cocoa ns lcms2 multi-tty
> make-network-process tty-child-frames native-compile emacs)
>
> Memory information:
> ((conses 16 915507 610495) (symbols 48 58456 36) (strings 32 301345 56457)
>  (string-bytes 1 7630160) (vectors 16 83554) (vector-slots 8 1016541
> 236273) (floats 8 670 469)
>  (intervals 56 1149 647) (buffers 992 17))
>
>
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Thu, 06 Feb 2025 14:49:01 GMT) Full text and rfc822 format available.

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

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Jordan Ellis Coppard via "Bug reports for GNU Emacs, the Swiss army
 knife of text editors" <bug-gnu-emacs <at> gnu.org>
Cc: Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>, 76096 <at> debbugs.gnu.org
Subject: Re: bug#76096: 31.0.50; recentf should not pre-emptively connect to
 remotes
Date: Thu, 06 Feb 2025 15:48:05 +0100
Jordan Ellis Coppard via "Bug reports for GNU Emacs, the Swiss army
knife of text editors" <bug-gnu-emacs <at> gnu.org> writes:

> Hi there,

Hi Jordan,

> I am aware that recentf is documented as establishing connections to
> remote files. I am also aware of the suggested solution of setting
> remote-file-name-access-timeout. I argue this is not a solution.

recentf-keep-default-predicate is designed to prevent unwanted access to
remote files. Don't you use it?

See also the discussion in bug#26258, bug#27108, and bug#57336.

(I'm not a recentf user, so I don't know what I'm speaking about).

> /Jordan

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Thu, 06 Feb 2025 14:49:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Thu, 06 Feb 2025 15:02:01 GMT) Full text and rfc822 format available.

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

From: Ship Mints <shipmints <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: jc+o.emacs <at> wz.ht, 76096 <at> debbugs.gnu.org
Subject: Re: bug#76096: 31.0.50;
 recentf should not pre-emptively connect to remotes
Date: Thu, 6 Feb 2025 09:59:18 -0500
[Message part 1 (text/plain, inline)]
Not that I'm speaking for the OP, but the difference between the default
and the predicate I suggested, is that mine does not attempt to check
remote file readability at all. The default will check readability when a
connection is believed to be established but that can be slow if the
connection is "wonky." For example, I keep a connection open to a virtual
machine. When I suspend the VM, the detection of the connection status is
not instantaneous.

On Thu, Feb 6, 2025 at 9:49 AM Michael Albinus via Bug reports for GNU
Emacs, the Swiss army knife of text editors <bug-gnu-emacs <at> gnu.org> wrote:

> Jordan Ellis Coppard via "Bug reports for GNU Emacs, the Swiss army
> knife of text editors" <bug-gnu-emacs <at> gnu.org> writes:
>
> > Hi there,
>
> Hi Jordan,
>
> > I am aware that recentf is documented as establishing connections to
> > remote files. I am also aware of the suggested solution of setting
> > remote-file-name-access-timeout. I argue this is not a solution.
>
> recentf-keep-default-predicate is designed to prevent unwanted access to
> remote files. Don't you use it?
>
> See also the discussion in bug#26258, bug#27108, and bug#57336.
>
> (I'm not a recentf user, so I don't know what I'm speaking about).
>
> > /Jordan
>
> Best regards, Michael.
>
>
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Sun, 09 Feb 2025 13:44:02 GMT) Full text and rfc822 format available.

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

From: Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>
To: Michael Albinus <michael.albinus <at> gmx.de>,
 Jordan Ellis Coppard via Bug reports for GNU "Emacs, " the Swiss army knife of
 text editors <bug-gnu-emacs <at> gnu.org>
Cc: 76096 <at> debbugs.gnu.org
Subject: Re: bug#76096: 31.0.50; recentf should not pre-emptively connect to
 remotes
Date: Sun, 9 Feb 2025 22:43:26 +0900
On 6/2/2025 11:48 pm, Michael Albinus wrote:
>> I am aware that recentf is documented as establishing connections to
>> remote files. I am also aware of the suggested solution of setting
>> remote-file-name-access-timeout. I argue this is not a solution.
> 
> recentf-keep-default-predicate is designed to prevent unwanted access to
> remote files. Don't you use it

Hmm, I've recompiled Emacs from master today on commit 
35fa7126903a0ac6a28901d194f0753acf60928d and with the same configuration 
I'm not seeing this behaviour. I thought this was reproduceable because 
it happened in the last few versions I had compiled (every 1-2 weeks or so).

Perhaps this bug report should be closed; if I see it happen again I'll 
get a proper emacs -Q reproduction.

So.. unsure why or how it's fixed (or if I was the problem) but.. it 
appears to be now..?

/Jordan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Sun, 09 Feb 2025 13:44:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#76096; Package emacs. (Sun, 09 Feb 2025 16:37:02 GMT) Full text and rfc822 format available.

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

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>
Cc: 76096-done <at> debbugs.gnu.org,
 "Jordan Ellis Coppard via Bug reports for GNU Emacs,
 the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
Subject: Re: bug#76096: 31.0.50; recentf should not pre-emptively connect to
 remotes
Date: Sun, 09 Feb 2025 17:36:39 +0100
Jordan Ellis Coppard <jc+o.emacs <at> wz.ht> writes:

Hi Jordan,

> Hmm, I've recompiled Emacs from master today on commit
> 35fa7126903a0ac6a28901d194f0753acf60928d and with the same
> configuration I'm not seeing this behaviour. I thought this was
> reproduceable because it happened in the last few versions I had
> compiled (every 1-2 weeks or so).
>
> Perhaps this bug report should be closed; if I see it happen again
> I'll get a proper emacs -Q reproduction.

Thanks for feedback. I've closed it.

And yes, in case of it would be helpful to reproduce it with a naked
Emacs (emacs -Q).

> /Jordan

Best regards, Michael.




Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Sun, 09 Feb 2025 16:38:01 GMT) Full text and rfc822 format available.

Notification sent to Jordan Ellis Coppard <jc+o.emacs <at> wz.ht>:
bug acknowledged by developer. (Sun, 09 Feb 2025 16:38:02 GMT) Full text and rfc822 format available.

Added tag(s) unreproducible. Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Sun, 09 Feb 2025 16:48:01 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 10 Mar 2025 11:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 86 days ago.

Previous Next


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