GNU bug report logs -
#65812
29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP
Previous Next
Reported by: user <at> pontos
Date: Thu, 7 Sep 2023 20:49:02 UTC
Severity: normal
Found in version 29.1
Done: Eli Zaretskii <eliz <at> gnu.org>
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 65812 in the body.
You can then email your comments to 65812 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65812
; Package
emacs
.
(Thu, 07 Sep 2023 20:49:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
user <at> pontos
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 07 Sep 2023 20:49:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hello,
I'm trying to connect Emacs client running on Windows over TCP to the Emacs
server running inside WSL.
# Inside WSL shell:
(cat <<EOF
(setq server-host "WSL_IP_ADDRESS_HERE")
(setq server-port 12345)
(setq server-use-tcp t)
(server-start)
EOF
) > server-config.el
emacs -Q -l server-config.el --daemon
# On Windows
# Map network drive \\wsl.localhost\Ubuntu as, e.g. W:
# Then in PowerShell:
$env:EMACS_SERVER_FILE=W:\home\user\.emacs.d\server\server
& 'C:\Program Files\Emacs\emacs-29.1\bin\emacsclientw.exe' -c -n
Client will first display message window saying that it connected to the
remote socket, and after clicking [OK] button, error message appears
saying "*ERROR*: Could not open file: CONOUT$".
In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on
AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.22621
System Description: Microsoft Windows 10 Pro for Workstations (v10.0.2009.22621.2215)
Configured using:
'configure --with-modules --without-dbus --with-native-compilation=aot
--without-compress-install --with-tree-sitter CFLAGS=-O2'
Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB
(NATIVE_COMP present but libgccjit not available)
Important settings:
value of $LANG: ENU
locale-coding-system: cp65001
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel dos-w32
ls-lisp disp-table term/w32-win w32-win w32-vars 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 nadvice seq
simple cl-generic indonesian philippine 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 abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
w32notify w32 lcms2 multi-tty make-network-process native-compile emacs)
Memory information:
((conses 16 49664 11502)
(symbols 48 5188 0)
(strings 32 15157 1304)
(string-bytes 1 415581)
(vectors 16 10077)
(vector-slots 8 254971 15480)
(floats 8 25 37)
(intervals 56 302 0)
(buffers 984 11))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65812
; Package
emacs
.
(Fri, 08 Sep 2023 07:25:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 65812 <at> debbugs.gnu.org (full text, mbox):
> Date: Thu, 7 Sep 2023 15:10:59 -0400
> From: user <at> pontos
>
> I'm trying to connect Emacs client running on Windows over TCP to the Emacs
> server running inside WSL.
This is currently not supported, due to the various quirks and kludges
we need to support the client-server protocol on MS-Windows. the
patch below attempts to support this by adding one more kludge.
> # Inside WSL shell:
> (cat <<EOF
> (setq server-host "WSL_IP_ADDRESS_HERE")
> (setq server-port 12345)
> (setq server-use-tcp t)
> (server-start)
> EOF
> ) > server-config.el
> emacs -Q -l server-config.el --daemon
>
> # On Windows
> # Map network drive \\wsl.localhost\Ubuntu as, e.g. W:
> # Then in PowerShell:
> $env:EMACS_SERVER_FILE=W:\home\user\.emacs.d\server\server
> & 'C:\Program Files\Emacs\emacs-29.1\bin\emacsclientw.exe' -c -n
>
> Client will first display message window saying that it connected to the
> remote socket, and after clicking [OK] button, error message appears
> saying "*ERROR*: Could not open file: CONOUT$".
Please try the patch below and tell if it solves your problem. The
patch should be applied to the Emacs you run inside WSL, and you will
need to byte-compile the patched server.el there, ensure the produced
server.elc file replaces the one you installed with the original Emacs
on WSL, and if Emacs you run on WSL also uses native-compilation, make
sure the stale .eln file is not loaded (it should happen
automatically, but for good measure just delete the old .eln file).
diff --git a/lisp/server.el b/lisp/server.el
index 104fc06..ee80b93 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1262,9 +1262,12 @@ server-process-filter
;; choice there.) In daemon mode on Windows, we can't
;; make tty frames, so force the frame type to GUI
;; there too.
- (when (and (eq system-type 'windows-nt)
- (or (daemonp)
- (eq window-system 'w32)))
+ (when (or (and (eq system-type 'windows-nt)
+ (or (daemonp)
+ (eq window-system 'w32)))
+ ;; Client runs on Windows, but the server
+ ;; runs on a Posix host.
+ (equal tty-name "CONOUT$")
(push "-window-system" args-left)))
;; -position +LINE[:COLUMN]: Set point to the given
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65812
; Package
emacs
.
(Fri, 08 Sep 2023 11:20:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 65812 <at> debbugs.gnu.org (full text, mbox):
> Cc: 65812 <at> debbugs.gnu.org
> Date: Fri, 08 Sep 2023 10:24:25 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> Please try the patch below and tell if it solves your problem.
Sorry, there was an error in that patch (this is what I get for
sending patches in a hurry). Please try the one below instead.
diff --git a/lisp/server.el b/lisp/server.el
index 104fc06..1006fee 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1262,9 +1262,12 @@ server-process-filter
;; choice there.) In daemon mode on Windows, we can't
;; make tty frames, so force the frame type to GUI
;; there too.
- (when (and (eq system-type 'windows-nt)
- (or (daemonp)
- (eq window-system 'w32)))
+ (when (or (and (eq system-type 'windows-nt)
+ (or (daemonp)
+ (eq window-system 'w32)))
+ ;; Client runs on Windows, but the server
+ ;; runs on a Posix host.
+ (equal tty-name "CONOUT$"))
(push "-window-system" args-left)))
;; -position +LINE[:COLUMN]: Set point to the given
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65812
; Package
emacs
.
(Fri, 08 Sep 2023 11:52:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 65812 <at> debbugs.gnu.org (full text, mbox):
> Cc: 65812 <at> debbugs.gnu.org
> Date: Fri, 08 Sep 2023 14:18:45 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > Cc: 65812 <at> debbugs.gnu.org
> > Date: Fri, 08 Sep 2023 10:24:25 +0300
> > From: Eli Zaretskii <eliz <at> gnu.org>
> >
> > Please try the patch below and tell if it solves your problem.
>
> Sorry, there was an error in that patch (this is what I get for
> sending patches in a hurry). Please try the one below instead.
The OP used an email address that cannot be replied to. Could someone
here who uses WSL (or some other setup where emacsclient on Windows
talks to the server on Unix) please try this patch with the recipe in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65812#5
and report back?
If no one can test this within a week or so, I'm going to install this
on the emacs-29 branch regardless. TIA.
> diff --git a/lisp/server.el b/lisp/server.el
> index 104fc06..1006fee 100644
> --- a/lisp/server.el
> +++ b/lisp/server.el
> @@ -1262,9 +1262,12 @@ server-process-filter
> ;; choice there.) In daemon mode on Windows, we can't
> ;; make tty frames, so force the frame type to GUI
> ;; there too.
> - (when (and (eq system-type 'windows-nt)
> - (or (daemonp)
> - (eq window-system 'w32)))
> + (when (or (and (eq system-type 'windows-nt)
> + (or (daemonp)
> + (eq window-system 'w32)))
> + ;; Client runs on Windows, but the server
> + ;; runs on a Posix host.
> + (equal tty-name "CONOUT$"))
> (push "-window-system" args-left)))
>
> ;; -position +LINE[:COLUMN]: Set point to the given
>
>
>
>
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Fri, 15 Sep 2023 07:05:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
user <at> pontos
:
bug acknowledged by developer.
(Fri, 15 Sep 2023 07:05:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 65812-done <at> debbugs.gnu.org (full text, mbox):
> Date: Fri, 08 Sep 2023 14:50:53 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > Cc: 65812 <at> debbugs.gnu.org
> > Date: Fri, 08 Sep 2023 14:18:45 +0300
> > From: Eli Zaretskii <eliz <at> gnu.org>
> >
> > > Cc: 65812 <at> debbugs.gnu.org
> > > Date: Fri, 08 Sep 2023 10:24:25 +0300
> > > From: Eli Zaretskii <eliz <at> gnu.org>
> > >
> > > Please try the patch below and tell if it solves your problem.
> >
> > Sorry, there was an error in that patch (this is what I get for
> > sending patches in a hurry). Please try the one below instead.
>
> The OP used an email address that cannot be replied to. Could someone
> here who uses WSL (or some other setup where emacsclient on Windows
> talks to the server on Unix) please try this patch with the recipe in
>
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65812#5
>
> and report back?
>
> If no one can test this within a week or so, I'm going to install this
> on the emacs-29 branch regardless. TIA.
No one responded, so I've now installed this on the emacs-29 branch,
and I'm closing the bug.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 13 Oct 2023 11:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 210 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.