From: Eli Zaretskii <eliz@gnu.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: 44644@debbugs.gnu.org, jidanni@jidanni.org
Subject: bug#44644: /tmp/emacs0/ not cleaned up upon exit
Date: Tue, 24 Nov 2020 17:28:09 +0200 [thread overview]
Message-ID: <83y2iqu646.fsf@gnu.org> (raw)
In-Reply-To: <87sg8zcnu0.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 24 Nov 2020 06:42:47 +0100)
> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: jidanni@jidanni.org, 44644@debbugs.gnu.org
> Date: Tue, 24 Nov 2020 06:42:47 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> True. Looking at the code, it looks like having `server-start' add
> >> `server-force-delete' to `kill-emacs-query-functions' would do the
> >> trick?
> >>
> >> Does anybody see any downsides to doing that?
> >
> > What if the Emacs that's being killed is not the one that created the
> > server file?
>
> I didn't read the code closely enough -- emacs-server already does this,
> but only deletes the /tmp/emacs0/server socket, but leaves the directory
> behind. As you say, there may be more than one server (with different
> names), so deleting the directory may fail, but the final Emacs that
> exits should successfully delete directory, at least, and I've added
> that to Emacs 28.
Wait a moment: we are deleting the _directory_ of the server file?
Sorry, I was confused and thought you were talking about the server
file itself.
The directory thing is different. First, its place and purpose
depends on whether server-use-tcp is nil (Posix platforms) or not
(MS-Windows or when the user of a Posix host connects from another
system). If this is non-nil, the directory of the server file is
server-auth-dir, which is:
(defcustom server-auth-dir (locate-user-emacs-file "server/")
Since this is a defcustom, I don't think we can delete that directory
behind user's back, even if it is empty.
If server-use-tcp is nil (the default), then the directory of
server-file is computed thusly:
(defvar server-socket-dir
(if internal--daemon-sockname
(file-name-directory internal--daemon-sockname)
(and (featurep 'make-network-process '(:family local))
(let ((xdg_runtime_dir (getenv "XDG_RUNTIME_DIR")))
(if xdg_runtime_dir
(format "%s/emacs" xdg_runtime_dir)
(format "%s/emacs%d" (or (getenv "TMPDIR") "/tmp") (user-uid))))))
I don't think it's kosher to delete $XDG_RUNTIME_DIR, even if it's
empty, since it is probably used by more than the server? And if
XDG_RUNTIME_DIR is not defined, and we use a directory under /tmp,
then the system cleans that up from time to time, doesn't it?
So bottom line, I don't think we should do this, at least not
unconditionally.
next prev parent reply other threads:[~2020-11-24 15:28 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-14 19:47 bug#44644: /tmp/emacs0/ not cleaned up upon exit 積丹尼 Dan Jacobson
2020-11-16 23:06 ` Lars Ingebrigtsen
2020-11-17 15:00 ` Eli Zaretskii
2020-11-17 15:21 ` 積丹尼 Dan Jacobson
2020-11-24 5:42 ` Lars Ingebrigtsen
2020-11-24 8:48 ` Andreas Schwab
2020-11-24 8:52 ` Lars Ingebrigtsen
2020-11-24 9:29 ` Andreas Schwab
2020-11-24 15:28 ` Eli Zaretskii [this message]
2020-11-24 15:41 ` Jean Louis
2020-11-25 6:13 ` Lars Ingebrigtsen
2020-11-26 13:41 ` Eli Zaretskii
2020-11-27 7:48 ` Lars Ingebrigtsen
2020-11-27 8:12 ` Eli Zaretskii
2020-11-27 8:22 ` Jean Louis
2020-11-27 8:25 ` Lars Ingebrigtsen
2020-11-27 22:34 ` 積丹尼 Dan Jacobson
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=83y2iqu646.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=44644@debbugs.gnu.org \
--cc=jidanni@jidanni.org \
--cc=larsi@gnus.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).