Ok I've found a way to reproduce bug 2 and 3 *without* `exec-path-from-shell`. 0. Get on macOS 10.14 1. Install [GPGTools](https://gpgtools.org/), this will put the `gpg` binary into `/usr/local/bin` 2. env -i /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs -l tramp --eval '(setq tramp-verbose 10 exec-path (cons "/usr/local/bin/" exec-path))' /sudo:: 3. Now the minibuffer prompt will be stuck at Tramp: Sending Password. 4. C-g to quit. I've attached a backtrace and the logs in *Messages* for this. 5. The `exec-path` is now `("/usr/local/bin/" "." "/Applications/MacPorts/Emacs.app/Contents/MacOS/libexec" "/Applications/MacPorts/Emacs.app/Contents/MacOS/bin")`. It appears as long as `.` is part of the search paths and `gpg` can be found in any of the search paths, the prompt will get stuck. 6. Saving the credentials for `root@localhost` into `~/.authinfo.gpg` will work around this issue. On Sat, Feb 8, 2020 at 6:36 PM Michael Albinus wrote: > > Jimmy Yuen Ho Wong writes: > > Hi, > > > For bug 2 and 3, the author said `file-remote-p` might have triggered > > some weird code paths that triggered this bug. I don't know how to > > edebug further as `redisplay_internal` keeps calling it. Do you know > > how to debug it? > > > > https://github.com/purcell/exec-path-from-shell/issues/95#issuecomment-582629738 > > I doubt that file-remote-p is guilty. This function is designed to *not* > work on the remote side, but check the syntax of a file name only. > > However, I've downloaded the package exec-path-from-shell from > MELPA. Reading the code, I have serious doubst it will cooperate with > Tramp. It's idea is to analyze the *local* shell, and apply actions over > the shell. But the *local* shell doesn't matter for remote files, so it > is completely useless. I'd recommend NOT to use exec-path-from-shell for > remote files. > > If you want to know mor details what happens with Tramp, you might > analyze the function calls. Evaluate > > --8<---------------cut here---------------start------------->8--- > (require 'trace) > (dolist (elt (all-completions "tramp-" obarray 'functionp)) > (trace-function-background (intern elt))) > (untrace-function 'tramp-read-passwd) > --8<---------------cut here---------------end--------------->8--- > > Then run your test. The buffer *trace-output* contains the output from > the function call traces. You might show it here, maybe I can find > something more about the problem. > > Best regards, Michael.