From: No Wayman <iarchivedmywholelife@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 62004@debbugs.gnu.org, akrl@sdf.org
Subject: bug#62004: 30.0.50; comp-run-async-workers failure when default-directory deleted
Date: Mon, 06 Mar 2023 16:29:19 -0500 [thread overview]
Message-ID: <87jzztwo9h.fsf@gmail.com> (raw)
In-Reply-To: <83jzzt7iac.fsf@gnu.org>
Eli Zaretskii <eliz@gnu.org> writes:
> Sorry, I don't think I understand. Are you saying that we don't
> bind
> default-directory to a safe value when compiling?
Correct. The default-directory is dependent on where
comp-run-async-workers happens to kick off.
This can be reliably reproduced by:
1. saving the following elisp into test.el:
--8<---------------cut here---------------start------------->8---
;; -*- lexical-binding: t; -*-
(let* ((tempdir (expand-file-name "./temp/" user-emacs-directory))
(default-directory tempdir)
(feat 'org))
;; Ensure fresh test dir
(when (file-exists-p tempdir) (delete-file tempdir))
(make-directory tempdir)
;; Ensure test feature is not loaded.
(when (featurep feat) (unload-feature feat t))
(setq initial-buffer-choice
(lambda ()
(with-current-buffer (find-file (expand-file-name
"./temp.txt" tempdir))
(insert "My directory will be deleted.")
(write-file (expand-file-name "./temp.txt" tempdir))
(delete-directory tempdir 'recursive)
(message "default-directory: %S" default-directory)
;; comp-run-async-workers kicked off by JIT
compilation here.
;; This buffer has a file-name, but the directory no
longer exists.
(require feat)
(get-buffer-create (buffer-file-name))))))
--8<---------------cut here---------------end--------------->8---
2. launching emacs in a temporary init directory via:
> $ rm -rf /tmp/comp.test/ && emacs
> --init-directory=/tmp/comp.test/ -l test.el
This should result in a *Messages* buffer similar to:
> For information about GNU Emacs and the GNU system, type C-h
> C-a.
> (New file)
> Saving file /tmp/comp.test/temp/temp.txt...
> Wrote /tmp/comp.test/temp/temp.txt
> default-directory: "/tmp/comp.test/temp/"
> comp-run-async-workers: Setting current directory: No such file
> or directory, /tmp/comp.test/temp/
> IOW, how could a directory where the async compilation
> subprocess runs become invalid, in Real Life?
I ran into this error in the wild by:
- Installing a package to review it.
- Deleting the package's repository, but still had the package's
main elisp buffer open/current.
- Ran a command, which loaded a package, which kicked off the JIT
comp process.
next prev parent reply other threads:[~2023-03-06 21:29 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-06 15:48 bug#62004: 30.0.50; comp-run-async-workers failure when default-directory deleted No Wayman
2023-03-06 16:49 ` Eli Zaretskii
2023-03-06 17:20 ` No Wayman
2023-03-06 18:31 ` Eli Zaretskii
2023-03-06 18:46 ` No Wayman
2023-03-06 20:10 ` Eli Zaretskii
2023-03-06 21:29 ` No Wayman [this message]
2023-03-07 3:30 ` Eli Zaretskii
[not found] ` <xjfo7p4vmjr.fsf@ma.sdf.org>
2023-03-07 13:17 ` Eli Zaretskii
2023-03-07 13:51 ` Andrea Corallo
2023-03-07 14:16 ` Eli Zaretskii
2023-03-07 15:20 ` No Wayman
2023-03-07 15:53 ` No Wayman
2023-03-07 16:06 ` Andrea Corallo
2023-03-07 16:14 ` Eli Zaretskii
2023-03-07 16:30 ` No Wayman
2023-03-08 20:19 ` Andrea Corallo
2023-03-08 20:51 ` No Wayman
2023-03-09 9:25 ` Andrea Corallo
2023-03-07 16:00 ` Andrea Corallo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jzztwo9h.fsf@gmail.com \
--to=iarchivedmywholelife@gmail.com \
--cc=62004@debbugs.gnu.org \
--cc=akrl@sdf.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).