unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





  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).