jwiegley / emacs-async

Simple library for asynchronous processing in Emacs
GNU General Public License v3.0
832 stars 68 forks source link

dired-async broken with remote files #80

Open thierryvolpiatto opened 7 years ago

thierryvolpiatto commented 7 years ago

It is working fine with emacs-24.5, didn't try with emacs-25*, here the buffers with async-debug enabled:

With emacs-24.5:

Lisp expression: Tramp: Opening connection for root@dell-14z using sudo...
Opening connection for root@dell-14z using sudo... \
Tramp: Sending command `exec env SHELL=/bin/sh sudo -u root -s -H -p Password:'
Tramp: Waiting for prompts from remote shell...
Waiting for prompts from remote shell... \
Tramp: Sending Password
Decrypting /home/thierry/.authinfo.gpg...0%
Decrypting /home/thierry/.authinfo.gpg...done
[...]

Here with emacs-26:

Lisp expression: Tramp: Opening connection for root@dell-14z using sudo...
Opening connection for root@dell-14z using sudo... \
Tramp: Sending command ‘exec env SHELL=/bin/sh sudo -u root -s -H -p P""a""s""s""w""o""r""d"":’
Tramp: Waiting for prompts from remote shell...
Waiting for prompts from remote shell... \
Tramp: Sending Password
Password for /sudo:root@dell-14z: 

Now hanging on password prompt whereas we are never prompted with emacs-24.5

I will try to find what's wrong here though it's hard to debug, if someone can help he is welcome...

thierryvolpiatto commented 7 years ago

Working fine on emacs-25.2, so the bug happen only on emacs-26

thierryvolpiatto commented 7 years ago

Working fine also with scp method and emacs-26, so I guess it is only a problem with sudo method. I didn't try yet multi hop i.e scp+sudo.

thierryvolpiatto commented 7 years ago

I finally found where the bug have been introduced in Emacs Master branch:

164fcc6f26e * Fix Bug#27315

Perhaps somebody can report upstream @jwiegley ?

To reproduce the bug from master emacs, it's easy:

1) enable dired-async-mode 2) Copy a local file to "/sudo::/somewhere", the child emacs will hang forever waiting user interaction for password.

As soon as you switch to 5647c4a2c62 (previous commit) it starts to work again.

thierryvolpiatto commented 7 years ago

I finally found a workaround by allowing using the emacs "-q" option instead of "-Q" in async. But IMO this should be fixed upstream in tramp directly (tramp should take care of not breaking external packages).