bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Philipp Stephani

1. emacs -Q
2. C-x d /ssh:some-remote-host:/some/dir RET
3. Mark any file with `m'
4. A . RET

Expected: File is searched for regex `.'
Actual: user-error: Search failed with status 1: find: ‘/ssh:some-remote-host:/some/dir/file’: No such file or directory

This is probably because `xref-collect-matches' calls
`call-process-shell-command', which doesn't work remotely.  It should
call `process-file-shell-command' instead.


In GNU Emacs 27.0.50 (build 56, x86_64-pc-linux-gnu, GTK+ Version 3.22.24)
 of 2018-10-10 built on localhost
Repository revision: fd3a48fcd8bb212ec12b9b10a79de0ae605ee93b
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Debian GNU/Linux buster/sid

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --enable-gtk-deprecation-warnings
 --enable-gcc-warnings=warn-only --with-modules --without-pop
 --with-mailutils --enable-checking --enable-check-lisp-object-type
 'CFLAGS=-O0 -ggdb3''

Configured features:
XPM JPEG TIFF GIF PNG SOUND DBUS GSETTINGS GLIB NOTIFY GNUTLS FREETYPE
XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS JSON GMP

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv dired dired-loaddefs format-spec rfc822 mml
easymenu mml-sec password-cache epa derived epg epg-config gnus-util
rmail rmail-loaddefs time-date 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 elec-pair
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 94915 12135)
 (symbols 48 20210 1)
 (strings 32 28343 2068)
 (string-bytes 1 755575)
 (vectors 16 14338)
 (vector-slots 8 508528 15982)
 (floats 8 47 70)
 (intervals 56 214 0)
 (buffers 992 12))

--
Google Germany GmbH
Erika-Mann-Straße 33
80636 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Paul Manicle, Halimah DeLaine Prado

If you received this communication by mistake, please don’t forward it to
anyone else (it may contain confidential or privileged information), please
erase all copies of it, including all attachments, and please let the sender
know it went to the wrong person.  Thanks.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Philipp <[hidden email]> writes:

Hi Philipp,

> 1. emacs -Q
> 2. C-x d /ssh:some-remote-host:/some/dir RET
> 3. Mark any file with `m'
> 4. A . RET
>
> Expected: File is searched for regex `.'
> Actual: user-error: Search failed with status 1: find: ‘/ssh:some-remote-host:/some/dir/file’: No such file or directory

Yep, same behaviour here.

> This is probably because `xref-collect-matches' calls
> `call-process-shell-command', which doesn't work remotely.  It should
> call `process-file-shell-command' instead.

Yes, this must be changed. But the file name needs some massage, too.

The appended patch fixes this for me. But since I don't know xref.el in
detail, I fear I introduce collateral damages. At least a second opinion
about the patch would be welcome, before I commit it to master.

Best regards, Michael.


attachment0 (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Michael Albinus <[hidden email]> writes:

Hi,

> The appended patch fixes this for me. But since I don't know xref.el in
> detail, I fear I introduce collateral damages. At least a second opinion
> about the patch would be welcome, before I commit it to master.

Ping. Dmitry, could you pls comment?

Best regards, Michael.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Dmitry Gutov
Hi Michael,

Sorry for the late reply.

On 21.10.2018 14:56, Michael Albinus wrote:

>> The appended patch fixes this for me. But since I don't know xref.el in
>> detail, I fear I introduce collateral damages. At least a second opinion
>> about the patch would be welcome, before I commit it to master.
>
> Ping. Dmitry, could you pls comment?

The patch doesn't look dangerous to me, so you can go ahead and install,
thank you.

There is, however, a possible inconsistency: it touches
xref--collect-matches-1, which is used both in xref-collect-matches and
xref-collect-references. And you only changed the former function.

Could you check that M-x xref-find-references didn't work on remote
directories before your patch anyway? If it did, though, please make
sure that it continues to do so.

Bonus points for fixing it, at least when Grep is used (the relevant
file is lisp/cedet/semantic/symref/grep.el).



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Dmitry Gutov <[hidden email]> writes:

> Hi Michael,

Hi Dmitry,

> The patch doesn't look dangerous to me, so you can go ahead and
> install, thank you.

Thanks for reviewing.

> There is, however, a possible inconsistency: it touches
> xref--collect-matches-1, which is used both in xref-collect-matches
> and xref-collect-references. And you only changed the former function.
>
> Could you check that M-x xref-find-references didn't work on remote
> directories before your patch anyway? If it did, though, please make
> sure that it continues to do so.
>
> Bonus points for fixing it, at least when Grep is used (the relevant
> file is lisp/cedet/semantic/symref/grep.el).
It doesn't work, indeed. symref/grep.el isn't aware of remote processes
(it uses call-process, for example). I've fixed this with the appended
additional patch.

Is it OK now to commit?

Best regards, Michael.


attachment0 (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Dmitry Gutov
Hi Michael,

On 26.10.2018 18:18, Michael Albinus wrote:

>> Could you check that M-x xref-find-references didn't work on remote
>> directories before your patch anyway? If it did, though, please make
>> sure that it continues to do so.
>>
>> Bonus points for fixing it, at least when Grep is used (the relevant
>> file is lisp/cedet/semantic/symref/grep.el).
>
> It doesn't work, indeed. symref/grep.el isn't aware of remote processes
> (it uses call-process, for example). I've fixed this with the appended
> additional patch.
>
> Is it OK now to commit?

Please go ahead, thank you!



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Dmitry Gutov <[hidden email]> writes:

> Hi Michael,

Hi Dmitry, Philipp,

>> Is it OK now to commit?
>
> Please go ahead, thank you!

I've committed a slightly modified version of the patch. Philipp, could
you pls confirm that it works for you?

Best regards, Michael.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Michael Albinus <[hidden email]> writes:

Hi Dmitry, Philipp,

> I've committed a slightly modified version of the patch. Philipp, could
> you pls confirm that it works for you?

Best regards, Michael.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Version: 27.1

Michael Albinus <[hidden email]> writes:

>> I've committed a slightly modified version of the patch. Philipp, could
>> you pls confirm that it works for you?

No News are good News, so I'm closing this bug.

Best regards, Michael.

PS: Philipp, I'm kinda frustrated that you never confirm bug fixes.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Philipp Stephani
In reply to this post by Michael Albinus
Am Mo., 29. Okt. 2018 um 14:12 Uhr schrieb Michael Albinus
<[hidden email]>:

> I've committed a slightly modified version of the patch. Philipp, could
> you pls confirm that it works for you?

Confirmed, thanks.
[In general there's no need to wait for my confirmation, I'm not doing
anything other than repeating the original reproduction steps.]



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Philipp Stephani <[hidden email]> writes:

Hi Philipp,

>> I've committed a slightly modified version of the patch. Philipp, could
>> you pls confirm that it works for you?
>
> Confirmed, thanks.

Thanks.

> [In general there's no need to wait for my confirmation, I'm not doing
> anything other than repeating the original reproduction steps.]

Usually, I work on Tramp problems. The local configuration isn't
important, what matters is almost always the remote host, which causes
the trouble. That's why I ask for confirmation.

(Acknowledged, it was a local problem in this case.)

Best regards, Michael.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Philipp Stephani
In reply to this post by Philipp Stephani
Am So., 6. Jan. 2019 um 01:39 Uhr schrieb Philipp Stephani
<[hidden email]>:
>
> Am Mo., 29. Okt. 2018 um 14:12 Uhr schrieb Michael Albinus
> <[hidden email]>:
>
> > I've committed a slightly modified version of the patch. Philipp, could
> > you pls confirm that it works for you?
>
> Confirmed, thanks.

Maintainers, would it be OK to backport this patch to the release
branch? This worked in Emacs 24.3 (which didn't use Xref), and the
patch is simple.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Eli Zaretskii
> From: Philipp Stephani <[hidden email]>
> Date: Sun, 6 Jan 2019 19:20:36 +0100
> Cc: Dmitry Gutov <[hidden email]>, [hidden email]
>
> Maintainers, would it be OK to backport this patch to the release
> branch? This worked in Emacs 24.3 (which didn't use Xref), and the
> patch is simple.

Sorry, no.  The patch touches places that are used by too many
features, and I disagree that the patch is simple: replacing
call-process with process-file is never "simple".

We lived with this since Emacs 24.4, we can live with it some more.



Reply | Threaded
Open this post in threaded view
|

bug#33006: 27.0.50; `dired-do-find-regexp' doesn't work for remote directories

Michael Albinus
Eli Zaretskii <[hidden email]> writes:

Hi Eli,

>> Maintainers, would it be OK to backport this patch to the release
>> branch? This worked in Emacs 24.3 (which didn't use Xref), and the
>> patch is simple.
>
> Sorry, no.  The patch touches places that are used by too many
> features, and I disagree that the patch is simple: replacing
> call-process with process-file is never "simple".

I believe the patch is harmless. But of course, I respect your decision.

Best regards, Michael.