Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Avoid LDAP hit during completion

Peter, thanks for the xtrace trick. Here is the partial output. The completion slow down (or appeared to be frozen) at _all_labels:39, (boxed up in asterisks below). Any help would be much appreciated.

+_description:35> zstyle -a :completion::complete:cd::users ignored-patterns _comp_ignore +_description:38> zstyle -s :completion::complete:cd::users ignore-line hidden
+_description:49> ((  1  ))
+_description:49> opts=( -F _comp_ignore )
+_description:54> tag=users
+_description:56> shift 2
+_description:57> [[ -z user ]]
+_description:59> [[ -n '' ]]
+_description:63> [[ -n '' ]]
+_description:70> [[ -n '' ]]
+_description:73> set -A expl -F _comp_ignore -J -default-
+_description:77> ((  0  ))
+_description:78> zstyle -a :completion::complete:cd::users fake match
+_description:88> return 0
************************************************************************ ** * +_all_labels:39> compadd -F _comp_ignore -J -default- -qS/ -k userdirs * ************************************************************************ **
+_all_labels:26> comptags -A users curtag __spec
+_all_labels:43> return __ret
+_wanted:9> _tags
+_tags:3> local prev
+_tags:10> [[ '' == -- ]]
+_tags:15> ((  0  ))
+_tags:66> comptags -N
+_wanted:13> return 1
+_tilde:24> _requested named-directories expl 'named directory' compadd -qS/ -k nameddirs
+_requested:3> local __gopt
+_requested:5> __gopt=( )
+_requested:6> zparseopts -D -a __gopt 1 2 V J x
+_requested:8> comptags -R named-directories
+_requested:9> [[ 7 -gt 3 ]]
+_requested:10> _all_labels - named-directories expl 'named directory' compadd -qS/ -k nameddirs +_all_labels:3> local __gopt __len __tmp __pre __suf '__ret=1' __descr __spec __prev
+_all_labels:5> [[ - == - ]]
+_all_labels:6> __prev=-
+_all_labels:7> shift
+_all_labels:10> __gopt=( )
+_all_labels:11> zparseopts -D -a __gopt 1 2 V J x
+_all_labels:13> __tmp=8
+_all_labels:14> __len=7
+_all_labels:15> [[ __tmp -lt __len ]]
+_all_labels:18> [[ __tmp -eq 7 ]]
+_all_labels:22> __pre=4
+_all_labels:23> __suf=5
+_all_labels:26> comptags -A- named-directories curtag __spec
+_all_labels:27> ((  9 > _tags_level  ))
+_all_labels:28> _tags_level=9
+_all_labels:29> _comp_tags=' local-directories users users named-directories '
+_all_labels:30> [[ named-directories == '*[^\]:*' ]]
+_all_labels:37> _description named-directories expl 'named directory'


On Jun 7, 2005, at 9:27 AM, Chris Wong wrote:

I'll try that today. Unfortunately, it doesn't always freeze up at the first completion attempt. I though it did for the first time, but found out otherwise. It may have to do with the caching happening at the DirectoryService on Mac. It seems to always happen at the worst possible time such as doing a demo/presentation. :-)


On Jun 7, 2005, at 2:26 AM, Peter Stephenson wrote:

Chris Wong wrote:

For some reason, whenever I start a zsh shell, the first completion
will trigger many many LDAP lookup.

% cd foo<TAB>

As soon as I hit TAB, the shell appears as frozen, but at the
background, it's hitting the LDAP server of my company network.  This
will go one for a couple minutes, at least.  tcpdump and top revealed
that mystery to me.

Are you using the new completion system (with compinit)?  The best way
of tracking this down would be to see what the completion scripts are
doing.  You can arrange this with

setopt xtrace"

This produces a huge amount of output so is useless for normal
completion but you should be able to see where the shell is pausing for
a long time.

Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070

This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.


Messages sorted by: Reverse Date, Date, Thread, Author