Subject: Re: bug#20675: 24.3; emacsclient cannot talk to emacs

From: Stefan Kangas <[email-masked]>
Date: Tue, 1 Oct 2019 20:05:49 +0200

Bruce Korb <[email-masked]> writes:

> > > The problem is that I need to redirect TMPDIR to different places for
> > > different tasks.  So that explainer above might get expanded to include
> > > mention of the fact that this directory:  ${TMPDIR}/emacs$(id -u)
> > > is used for communication.  I'd have found the problem long ago.
> > >
> > > So please consider this an RFE to the above "can't find socket" message.
> >
> > Are you saying that you are trying to use emacsclient with a different
> > $TMPDIR than the one you used for the emacs server?
>
> What I am attempting to do is to have multiple (two) cscope-s running
> each talking to a different server. The real issue being that I needed
> emacs windows tied to a specific invocation of cscope. It seemed the
> best way to do that was to have multiple servers running since "last
> active emacs window" is inadequate. Anyway, for me, I retired 6 months
> after posting this and doubt I'll ever want to run multiple cscopes in
> parallel ever again. :)

Thanks for reporting back, and I hope you're enjoying your retirement.

If I understand correctly, the problem is that there is a mismatch
between the $TMPDIR used on the emacs server and on the emacs client.

I think that the answer in this case should be: don't change $TMPDIR
unless you have to, and if you do, please be careful with how you do
it.  In other words, I have a hard time seeing how we could do better
here.

(I also note that we recently started preferring $XDG_RUNTIME_DIR if
that's set.)

But perhaps we could do something about the documentation.  I see that
server-socket-dir is documented in the Emacs FAQ, but not at all in
the manual.  Is that really right?  I would have expected it to be the
other way around: the FAQ is just the quick-start version, and one
would have to read the manual for all the details.

Best regards,
Stefan Kangas