Re:How Bash Completion Works
by earenndil on Monday October 07, 2019 @01:22AM
(#21177768)
At least in zsh, you can interrupt slow autocompletes with ^C.
[ Parent
| on HN ]
Zsh also lets you configure, via the `remote-access` style whether you want to allow it to make remote connections for completion to begin with.
My experience actually is with zsh, it is about remote-access, and I cannot interrupt it with Ctrl-C.
The particular case is normal filepath completion on an NFS mount where the NFS server is a very old Unix OS using a very old version of the NFS protocol. The thing is that while the server hangs under particular circumstances, and zsh is trying to read the directory to autocomplete paths, the kernel cannot return from the normal FS system calls that are invoked, and the process gets stuck in uninterruptible IO. Not even SIGKILL works then.
There's a good chance that setting the path-completion style to false will help in this case. That does disable a useful feature - though it is only a useful feature if you know it is there and use it. If not even SIGKILL works, it is stuck in kernel code. That doesn't surprise me much with NFS. That's not easy to workaround in the zsh code - other than by disabling functionality as with my path-completion suggestion.