GNU bug report logs - #55382
28.1; "fileloop-next-file: Read error: Is a directory" when running project-query-replace-regexp

Previous Next

Package: emacs;

Reported by: Alex Broekhof <abroekhof <at> gmail.com>

Date: Thu, 12 May 2022 02:43:02 UTC

Severity: normal

Merged with 58453

Found in versions 28.1, 28.2

Fixed in version 29.1

Done: Dmitry Gutov <dgutov <at> yandex.ru>

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 55382 in the body.
You can then email your comments to 55382 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#55382; Package emacs. (Thu, 12 May 2022 02:43:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alex Broekhof <abroekhof <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 12 May 2022 02:43:02 GMT) Full text and rfc822 format available.

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

From: Alex Broekhof <abroekhof <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.1; "fileloop-next-file: Read error: Is a directory" when running
 project-query-replace-regexp
Date: Wed, 11 May 2022 13:50:09 -0700
[Message part 1 (text/plain, inline)]
Hitting this error when trying to run project-query-replace-regexp. The
project I'm working under has git submodules, if that could cause any
issues? (Redacted some of the directories and search strings)

```
Debugger entered--Lisp error: (file-error "Read error" "Is a directory"
"/Users/x/x/x/common/x")
  insert-file-contents("/Users/x/x/x/common/x" nil)
  fileloop-next-file(t)
  fileloop-continue()
  project-query-replace-regexp("x::x::x::x" "y::y::y::y")
  funcall-interactively(project-query-replace-regexp "x::x::x::x"
"y::y::y::y")
  call-interactively(project-query-replace-regexp nil nil)
  command-execute(project-query-replace-regexp)
```

Running: GNU Emacs 28.1 (build 1, x86_64-apple-darwin18.7.0, NS
appkit-1671.60 Version 10.14.6 (Build 18G95)) of 2022-04-04

project.el: Version: 0.8.1

Config (using straight):
```
(use-package project
  :bind-keymap ("C-x p" . project-prefix-map))
```

Is `project-files` perhaps being loaded with incorrect file names in
some cases?


In GNU Emacs 28.1 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60
Version 10.14.6 (Build 18G95))
 of 2022-04-04 built on builder10-14.lan
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.3.1

Configured using:
 'configure --with-ns '--enable-locallisppath=/Library/Application
 Support/Emacs/${version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp' --with-modules'

Configured features:
ACL GMP GNUTLS JSON LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER THREADS
TOOLKIT_SCROLL_BARS ZLIB

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

Major mode: Magit

Minor modes in effect:
  csv-field-index-mode: t
  global-git-commit-mode: t
  pyvenv-mode: t
  global-tree-sitter-mode: t
  global-company-mode: t
  company-mode: t
  marginalia-mode: t
  vertico-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-anzu-mode: t
  anzu-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  savehist-mode: t
  show-smartparens-global-mode: t
  smartparens-global-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  windmove-mode: t
  override-global-mode: t
  which-key-mode: t
  global-hl-line-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/abroekhof/.emacs.d/straight/build/jsonrpc/jsonrpc hides
/Applications/Emacs.app/Contents/Resources/lisp/jsonrpc
/Users/abroekhof/.emacs.d/straight/build/transient/transient hides
/Applications/Emacs.app/Contents/Resources/lisp/transient
/Users/abroekhof/.emacs.d/straight/build/xref/xref hides
/Applications/Emacs.app/Contents/Resources/lisp/progmodes/xref
/Users/abroekhof/.emacs.d/straight/build/project/project hides
/Applications/Emacs.app/Contents/Resources/lisp/progmodes/project
/Users/abroekhof/.emacs.d/straight/build/flymake/flymake hides
/Applications/Emacs.app/Contents/Resources/lisp/progmodes/flymake
/Users/abroekhof/.emacs.d/straight/build/org/ob-exp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/abroekhof/.emacs.d/straight/build/org/ob-emacs-lisp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/abroekhof/.emacs.d/straight/build/org/oc hides
/Applications/Emacs.app/Contents/Resources/lisp/org/oc
/Users/abroekhof/.emacs.d/straight/build/org/ob-css hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/abroekhof/.emacs.d/straight/build/org/ob-lob hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/abroekhof/.emacs.d/straight/build/org/ol-irc hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-irc
/Users/abroekhof/.emacs.d/straight/build/org/ob-forth hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-forth
/Users/abroekhof/.emacs.d/straight/build/org/org-macs hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/abroekhof/.emacs.d/straight/build/org/ob hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob
/Users/abroekhof/.emacs.d/straight/build/org/org-version hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/abroekhof/.emacs.d/straight/build/org/ob-scheme hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/abroekhof/.emacs.d/straight/build/org/ox hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox
/Users/abroekhof/.emacs.d/straight/build/org/ob-C hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/abroekhof/.emacs.d/straight/build/org/org-capture hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/abroekhof/.emacs.d/straight/build/org/ob-ref hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/abroekhof/.emacs.d/straight/build/org/ob-clojure hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/abroekhof/.emacs.d/straight/build/org/org-mouse hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/abroekhof/.emacs.d/straight/build/org/org-ctags hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/abroekhof/.emacs.d/straight/build/org/org-entities hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/abroekhof/.emacs.d/straight/build/org/org-archive hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/abroekhof/.emacs.d/straight/build/org/ob-screen hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/abroekhof/.emacs.d/straight/build/org/ol-bibtex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-bibtex
/Users/abroekhof/.emacs.d/straight/build/org/ob-haskell hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/abroekhof/.emacs.d/straight/build/org/org-table hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/abroekhof/.emacs.d/straight/build/org/ol-eww hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-eww
/Users/abroekhof/.emacs.d/straight/build/org/ol-man hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-man
/Users/abroekhof/.emacs.d/straight/build/org/ox-org hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-org
/Users/abroekhof/.emacs.d/straight/build/org/org-num hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-num
/Users/abroekhof/.emacs.d/straight/build/org/org-plot hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/abroekhof/.emacs.d/straight/build/org/ol-rmail hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-rmail
/Users/abroekhof/.emacs.d/straight/build/org/ob-awk hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/abroekhof/.emacs.d/straight/build/org/ob-groovy hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-groovy
/Users/abroekhof/.emacs.d/straight/build/org/ob-octave hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/abroekhof/.emacs.d/straight/build/org/org-faces hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/abroekhof/.emacs.d/straight/build/org/oc-biblatex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/oc-biblatex
/Users/abroekhof/.emacs.d/straight/build/org/org-colview hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/abroekhof/.emacs.d/straight/build/org/ob-R hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/abroekhof/.emacs.d/straight/build/org/org-refile hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-refile
/Users/abroekhof/.emacs.d/straight/build/org/org-timer hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/abroekhof/.emacs.d/straight/build/org/org-mobile hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/abroekhof/.emacs.d/straight/build/org/ob-fortran hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/abroekhof/.emacs.d/straight/build/org/ob-shell hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-shell
/Users/abroekhof/.emacs.d/straight/build/org/ob-perl hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/abroekhof/.emacs.d/straight/build/org/ob-sqlite hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/abroekhof/.emacs.d/straight/build/org/oc-basic hides
/Applications/Emacs.app/Contents/Resources/lisp/org/oc-basic
/Users/abroekhof/.emacs.d/straight/build/org/ob-sed hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sed
/Users/abroekhof/.emacs.d/straight/build/org/org-list hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/abroekhof/.emacs.d/straight/build/org/ob-ruby hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/abroekhof/.emacs.d/straight/build/org/ob-eval hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/abroekhof/.emacs.d/straight/build/org/org-habit hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/abroekhof/.emacs.d/straight/build/org/org-clock hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/abroekhof/.emacs.d/straight/build/org/org-goto hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-goto
/Users/abroekhof/.emacs.d/straight/build/org/ox-html hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-html
/Users/abroekhof/.emacs.d/straight/build/org/org-src hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/abroekhof/.emacs.d/straight/build/org/ob-lisp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/abroekhof/.emacs.d/straight/build/org/ol-eshell hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-eshell
/Users/abroekhof/.emacs.d/straight/build/org/ob-ditaa hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/abroekhof/.emacs.d/straight/build/org/org-pcomplete hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/abroekhof/.emacs.d/straight/build/org/org-lint hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-lint
/Users/abroekhof/.emacs.d/straight/build/org/ox-latex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex
/Users/abroekhof/.emacs.d/straight/build/org/ob-sass hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/abroekhof/.emacs.d/straight/build/org/ob-tangle hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/abroekhof/.emacs.d/straight/build/org/ob-calc hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/abroekhof/.emacs.d/straight/build/org/ob-java hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/abroekhof/.emacs.d/straight/build/org/ox-icalendar hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
/Users/abroekhof/.emacs.d/straight/build/org/ol-mhe hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-mhe
/Users/abroekhof/.emacs.d/straight/build/org/org-attach-git hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-attach-git
/Users/abroekhof/.emacs.d/straight/build/org/ox-md hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-md
/Users/abroekhof/.emacs.d/straight/build/org/ox-beamer hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer
/Users/abroekhof/.emacs.d/straight/build/org/org-element hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/abroekhof/.emacs.d/straight/build/org/oc-natbib hides
/Applications/Emacs.app/Contents/Resources/lisp/org/oc-natbib
/Users/abroekhof/.emacs.d/straight/build/org/org-protocol hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/abroekhof/.emacs.d/straight/build/org/ob-gnuplot hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/abroekhof/.emacs.d/straight/build/org/org-tempo hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-tempo
/Users/abroekhof/.emacs.d/straight/build/org/ob-latex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/abroekhof/.emacs.d/straight/build/org/ol-w3m hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-w3m
/Users/abroekhof/.emacs.d/straight/build/org/org-id hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/abroekhof/.emacs.d/straight/build/org/ox-man hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-man
/Users/abroekhof/.emacs.d/straight/build/org/ol-doi hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-doi
/Users/abroekhof/.emacs.d/straight/build/org/org-feed hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/abroekhof/.emacs.d/straight/build/org/ob-julia hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-julia
/Users/abroekhof/.emacs.d/straight/build/org/ob-lua hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lua
/Users/abroekhof/.emacs.d/straight/build/org/ob-table hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/abroekhof/.emacs.d/straight/build/org/ob-ocaml hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/abroekhof/.emacs.d/straight/build/org/oc-csl hides
/Applications/Emacs.app/Contents/Resources/lisp/org/oc-csl
/Users/abroekhof/.emacs.d/straight/build/org/ol-gnus hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-gnus
/Users/abroekhof/.emacs.d/straight/build/org/org-indent hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/abroekhof/.emacs.d/straight/build/org/ob-lilypond hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/abroekhof/.emacs.d/straight/build/org/ob-matlab hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/abroekhof/.emacs.d/straight/build/org/org-datetree hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/abroekhof/.emacs.d/straight/build/org/ol-docview hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-docview
/Users/abroekhof/.emacs.d/straight/build/org/ob-python hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/abroekhof/.emacs.d/straight/build/org/ob-makefile hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile
/Users/abroekhof/.emacs.d/straight/build/org/org-duration hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-duration
/Users/abroekhof/.emacs.d/straight/build/org/org-agenda hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/abroekhof/.emacs.d/straight/build/org/ob-dot hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/abroekhof/.emacs.d/straight/build/org/ob-js hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/abroekhof/.emacs.d/straight/build/org/ox-publish hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish
/Users/abroekhof/.emacs.d/straight/build/org/org-inlinetask hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/abroekhof/.emacs.d/straight/build/org/ob-org hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/abroekhof/.emacs.d/straight/build/org/org-keys hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-keys
/Users/abroekhof/.emacs.d/straight/build/org/ob-core hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-core
/Users/abroekhof/.emacs.d/straight/build/org/org-compat hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/abroekhof/.emacs.d/straight/build/org/ol hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol
/Users/abroekhof/.emacs.d/straight/build/org/ox-odt hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt
/Users/abroekhof/.emacs.d/straight/build/org/ol-info hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-info
/Users/abroekhof/.emacs.d/straight/build/org/ob-plantuml hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/abroekhof/.emacs.d/straight/build/org/ob-eshell hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-eshell
/Users/abroekhof/.emacs.d/straight/build/org/ox-ascii hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii
/Users/abroekhof/.emacs.d/straight/build/org/org-loaddefs hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
/Users/abroekhof/.emacs.d/straight/build/org/ox-koma-letter hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-koma-letter
/Users/abroekhof/.emacs.d/straight/build/org/ob-maxima hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/abroekhof/.emacs.d/straight/build/org/org hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org
/Users/abroekhof/.emacs.d/straight/build/org/ol-bbdb hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ol-bbdb
/Users/abroekhof/.emacs.d/straight/build/org/org-macro hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-macro
/Users/abroekhof/.emacs.d/straight/build/org/ob-sql hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/abroekhof/.emacs.d/straight/build/org/org-attach hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/abroekhof/.emacs.d/straight/build/org/ob-processing hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-processing
/Users/abroekhof/.emacs.d/straight/build/org/ox-texinfo hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
/Users/abroekhof/.emacs.d/straight/build/org/org-crypt hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt
/Users/abroekhof/.emacs.d/straight/build/org/org-footnote hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/abroekhof/.emacs.d/straight/build/org/org-install hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-install
/Users/abroekhof/.emacs.d/straight/build/org/ob-comint hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint
/Users/abroekhof/.emacs.d/straight/build/eldoc/eldoc hides
/Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eldoc

Features:
(shadow mail-extr emacsbug sendmail org-indent org-bullets cl-print
cus-start cus-load sh-script smie executable apropos goto-addr misearch
multi-isearch bug-reference csv-mode sort help-fns magit-patch
magit-subtree magit-gitignore magit-ediff ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util protobuf-mode
conf-mode gn-mode pulse consult-xref eglot array jsonrpc cc-mode
cc-fonts cc-guess cc-menus cc-styles cc-align avy magit-extras
magit-bookmark magit-submodule magit-obsolete 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 magit-diff smerge-mode git-commit log-edit add-log
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor server magit-mode transient magit-git magit-base
magit-section crm compat-27 compat-26 compat olivetti vertico-directory
vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs consult-vertico
consult rainbow-delimiters highlight-symbol diff-hl log-view pcvs-util
vc-dir vc company-oddmuse company-keywords company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb init auctex-autoloads tex-site web-mode-autoloads
multi-vterm multi-vterm-autoloads vterm bookmark face-remap color term
disp-table ehelp vterm-module term/xterm xterm vterm-autoloads
elfeed-org-autoloads s-autoloads elfeed-autoloads vlf-setup vlf vlf-base
vlf-tune vlf-autoloads go-mode find-file ffap etags fileloop xref
go-mode-autoloads csv-mode-autoloads gn-mode-autoloads
protobuf-mode-autoloads blacken blacken-autoloads pyvenv eshell esh-cmd
esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util
pyvenv-autoloads python-mode info-look tramp-sh which-func imenu
hideshow hippie-exp ert ewoc debug backtrace cc-cmds cc-engine cc-vars
cc-defs python-mode-autoloads eglot-autoloads jsonrpc-autoloads
flymake-proc flymake project warnings flymake-autoloads eldoc-autoloads
google-c-style google-c-style-autoloads tree-sitter-langs
tree-sitter-langs-build tar-mode arc-mode archive-mode pp tree-sitter-hl
tree-sitter tree-sitter-load tree-sitter-cli tsc tsc-dyn tsc-dyn-get
compile dired-aux tsc-obsolete tree-sitter-langs-autoloads
tree-sitter-autoloads tsc-autoloads company pcase company-autoloads
project-autoloads xref-autoloads diff-hl-autoloads magit-autoloads
git-commit-autoloads with-editor-autoloads transient-autoloads
olivetti-autoloads org-roam-autoloads magit-section-autoloads
compat-autoloads emacsql-sqlite-autoloads emacsql-autoloads ox-gfm
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-md ox-latex ox-icalendar
org-agenda ox-html table ox-ascii ox-publish ox ox-gfm-autoloads
org-bullets-autoloads ob-dot ob-calc calc-store calc-trail calc-ext calc
calc-loaddefs rect calc-macs consult-autoloads autoload radix-tree
lisp-mnt marginalia marginalia-autoloads orderless orderless-autoloads
use-package-ensure vertico vertico-autoloads highlight-symbol-autoloads
expand-region-autoloads undo-tree diff queue undo-tree-autoloads
queue-autoloads anzu anzu-autoloads crux tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat shell ls-lisp crux-autoloads
recentf tree-widget savehist smartparens dash smartparens-autoloads
dash-autoloads yasnippet yasnippet-autoloads buffer-move-autoloads
windmove ace-window-autoloads switch-window-autoloads edmacro kmacro
avy-autoloads use-package-bind-key bind-key which-key
which-key-autoloads rainbow-delimiters-autoloads use-package-diminish
diminish diminish-autoloads hl-line leuven-theme leuven-theme-autoloads
autorevert filenotify delsel exec-path-from-shell
exec-path-from-shell-autoloads finder-inf vc-git diff-mode vc-dispatcher
org-element org-persist org-id org-refile avl-tree generator oc-basic
ol-eww eww xdg url-queue thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe gnus-art
mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util url-parse url-vars mailcap gnus-group
gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
message rmc puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs
auth-source eieio eieio-core eieio-loaddefs password-cache json map
rfc2047 rfc2045 ietf-drums text-property-search mail-utils mm-util
mail-prsvr wid-edit ol-docview doc-view jka-compr image-mode exif dired
dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi
org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color
ring org-list org-faces org-entities time-date noutline outline
easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table
ol rx org-fold org-fold-core org-keys oc org-compat advice org-macs
org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs
use-package-core use-package-autoloads bind-key-autoloads
straight-autoloads info cl-seq cl-extra help-mode seq byte-opt straight
subr-x cl-macs gv cl-loaddefs cl-lib bytecomp byte-compile cconv
iso-transl tooltip 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 cl-generic 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 simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue cocoa ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 2698533 255986)
 (symbols 48 60712 8)
 (strings 32 455047 46316)
 (string-bytes 1 161974757)
 (vectors 16 112466)
 (vector-slots 8 1740442 442702)
 (floats 8 768 2793)
 (intervals 56 865946 37818)
 (buffers 992 231))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#55382; Package emacs. (Sun, 15 May 2022 01:58:02 GMT) Full text and rfc822 format available.

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

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Alex Broekhof <abroekhof <at> gmail.com>, 55382 <at> debbugs.gnu.org
Subject: Re: bug#55382: 28.1; "fileloop-next-file: Read error: Is a directory"
 when running project-query-replace-regexp
Date: Sun, 15 May 2022 04:57:14 +0300
On 11.05.2022 23:50, Alex Broekhof wrote:
> Hitting this error when trying to run project-query-replace-regexp. The 
> project I'm working under has git submodules, if that could cause any 
> issues? (Redacted some of the directories and search strings)
> 
> ```
> Debugger entered--Lisp error: (file-error "Read error" "Is a directory" 
> "/Users/x/x/x/common/x")
>    insert-file-contents("/Users/x/x/x/common/x" nil)
>    fileloop-next-file(t)
>    fileloop-continue()
>    project-query-replace-regexp("x::x::x::x" "y::y::y::y")
>    funcall-interactively(project-query-replace-regexp "x::x::x::x" 
> "y::y::y::y")
>    call-interactively(project-query-replace-regexp nil nil)
>    command-execute(project-query-replace-regexp)

Hi! This is arguably a but of the project-vc's project-files 
implementation, but there's no obvious way to fix it without 
compromising performance. And yes, it's related to submodules.

Try this patch please:

diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 6c50135358..be9532b649 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1088,7 +1088,9 @@ project-query-replace-regexp
                   (query-replace-read-args "Query replace (regexp)" t t)))
        (list from to))))
   (fileloop-initialize-replace
-   from to (project-files (project-current t)) 'default)
+   from to
+   (cl-delete-if-not #'file-regular-p (project-files (project-current t)))
+   'default)
   (fileloop-continue))

 (defvar compilation-read-command)




Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Sat, 04 Jun 2022 00:15:01 GMT) Full text and rfc822 format available.

Notification sent to Alex Broekhof <abroekhof <at> gmail.com>:
bug acknowledged by developer. (Sat, 04 Jun 2022 00:15:02 GMT) Full text and rfc822 format available.

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

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Alex Broekhof <abroekhof <at> gmail.com>, 55382-done <at> debbugs.gnu.org
Subject: Re: bug#55382: 28.1; "fileloop-next-file: Read error: Is a directory"
 when running project-query-replace-regexp
Date: Sat, 4 Jun 2022 03:14:16 +0300
Version: 29.1

On 15.05.2022 04:57, Dmitry Gutov wrote:
> On 11.05.2022 23:50, Alex Broekhof wrote:
>> Hitting this error when trying to run project-query-replace-regexp. 
>> The project I'm working under has git submodules, if that could cause 
>> any issues? (Redacted some of the directories and search strings)
>>
>> ```
>> Debugger entered--Lisp error: (file-error "Read error" "Is a 
>> directory" "/Users/x/x/x/common/x")
>>    insert-file-contents("/Users/x/x/x/common/x" nil)
>>    fileloop-next-file(t)
>>    fileloop-continue()
>>    project-query-replace-regexp("x::x::x::x" "y::y::y::y")
>>    funcall-interactively(project-query-replace-regexp "x::x::x::x" 
>> "y::y::y::y")
>>    call-interactively(project-query-replace-regexp nil nil)
>>    command-execute(project-query-replace-regexp)
> 
> Hi! This is arguably a but of the project-vc's project-files 
> implementation, but there's no obvious way to fix it without 
> compromising performance. And yes, it's related to submodules.
> 
> Try this patch please:
> 
> diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
> index 6c50135358..be9532b649 100644
> --- a/lisp/progmodes/project.el
> +++ b/lisp/progmodes/project.el
> @@ -1088,7 +1088,9 @@ project-query-replace-regexp
>                     (query-replace-read-args "Query replace (regexp)" t 
> t)))
>          (list from to))))
>     (fileloop-initialize-replace
> -   from to (project-files (project-current t)) 'default)
> +   from to
> +   (cl-delete-if-not #'file-regular-p (project-files (project-current t)))
> +   'default)
>     (fileloop-continue))
> 
>   (defvar compilation-read-command)

Now pushed to master.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 02 Jul 2022 11:24:08 GMT) Full text and rfc822 format available.

bug unarchived. Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 12 Oct 2022 09:57:01 GMT) Full text and rfc822 format available.

Forcibly Merged 55382 58453. Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 12 Oct 2022 09:57: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. (Wed, 09 Nov 2022 12:24:09 GMT) Full text and rfc822 format available.

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

Previous Next


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