Am Donnerstag, 22. März 2012 schrieb Michael Prokop:
* Axel Beckert [Thu Mar 22, 2012 at 11:27:54AM +0100]:
Frank Terbeck wrote:
Martin Steigerwald wrote:
[...]
mango% compinit
mango% cd In
No reaction on tab anymore.
[...]
I ran into this too, after I bumped my zshrc to the newest grml zshrc
on Debian Stable with NFS home and about 5000 users in NIS. So I'm not
sure if it has the same reason, but it definitely has the same
symptoms.
I'd say 5 to 10 minutes or so. Ctrl-C doesn't help. Just waiting. The
zsh process is in the uninterruptable sleep state (aka D aka disk
waiting).
It doesn't seem to happen with all kinds of completion but at least
with scp completion.
Might be worth trying a debug session as documented in
http://anonscm.debian.org/gitweb/?p=collab-maint/zsh.git;a=blob;f=debian/RE
ADME.Debian
Here is what I get when I just next through it. Thats just what happens when
I press tab in a shell with compinit loaded where tab completion does not
work:
ms@mango:~/lokal/Debian/zsh-debugging#1 gdb $(find . -type d -printf '-d %p ')
attach 8463
GNU gdb (GDB) 7.4-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type show copying
and show warranty for details.
This GDB was configured as i486-linux-gnu.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
attach: Datei oder Verzeichnis nicht gefunden.
Attaching to process 8463
Reading symbols from /bin/zsh4...Reading symbols from
/usr/lib/debug/bin/zsh4.dbg...done.
done.
Reading symbols from /lib/libcap.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libcap.so.2
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libdl.so.2...Reading
symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libdl-2.13.so...done.
done.
[…]
Reading symbols from /usr/lib/zsh/4.3.17/zsh/terminfo.so...Reading symbols
from /usr/lib/debug/usr/lib/zsh/4.3.17/zsh/terminfo.so.debug...done.
done.
Loaded symbols for /usr/lib/zsh/4.3.17/zsh/terminfo.so
[…]
(gdb) step
Single stepping until exit from function __kernel_vsyscall,
which has no line number information.
getbyte (do_keytmout=0, timeout=0x0) at ../../../Src/Zle/zle_main.c:845
845 restore_queue_signals(q);
(gdb) next
846 if (r == -2) {
(gdb) next
845 restore_queue_signals(q);
(gdb) next
846 if (r == -2) {
(gdb) next
852 if (r == 1)
(gdb) next
894 if (cc == '\r') /* undo the exchange of \n and \r
determined by */
(gdb) next
896 else if (cc == '\n')
(gdb) next
905 if (vichgflag) {
(gdb) next
910 errno = old_errno;
(gdb) next
911 return lastchar = ret;
(gdb) next
912 }
(gdb) next
getkeybuf (w=0) at ../../../Src/Zle/zle_keymap.c:1486
1486if(c 0)
(gdb) next
1484int c = getbyte((long)w, NULL);
(gdb) next
1486if(c 0)
(gdb) next
1488if(keybuflen + 3 keybufsz)
(gdb) next
1490if(imeta(c)) {
(gdb) next
1494keybuf[keybuflen++] = c;
(gdb) next
1495keybuf[keybuflen] = 0;
(gdb) next
getkeymapcmd (km=0x8ce18d8, funcp=0xbfb149f4, strp=0xbfb149f8) at
../../../Src/Zle/zle_keymap.c:1431
1431int loc = !!localkeymap;
(gdb) next
1428while(getkeybuf(!!lastlen) != EOF) {
(gdb) next
1431int loc = !!localkeymap;
(gdb) next
1434if (loc) {
(gdb) next
1432int ispfx = 0;
(gdb) next
1439f = keybind(km, keybuf, s);
(gdb) next
1440ispfx |= keyisprefix(km, keybuf);
(gdb) next
1439f = keybind(km, keybuf, s);
(gdb) next
1440ispfx |= keyisprefix(km, keybuf);
(gdb) next
1442if (f != t_undefinedkey) {
(gdb) next
1443lastlen = keybuflen;
(gdb) next
1445str = s;
(gdb) next
1446lastc = lastchar;
(gdb) next
1443lastlen = keybuflen;
(gdb) next
1446lastc = lastchar;
(gdb) next
1445str = s;
(gdb) next
1446lastc = lastchar;
(gdb) next
1448if (!ispfx)
(gdb) next
1451if(!lastlen keybuflen)
(gdb) next
1454lastchar = lastc;
(gdb) next
1455if(lastlen != keybuflen) {
(gdb) next
1454lastchar = lastc;
(gdb) next
1455if(lastlen != keybuflen) {
(gdb) next
1462*funcp = func;
(gdb) next
1463*strp = str;
(gdb) next
1462*funcp = func;
(gdb) next
1463*strp = str;
(gdb) next
1464return keybuf;
(gdb) next
1465}
(gdb) next
getkeycmd () at ../../../Src/Zle/zle_keymap.c:1521
1521if(!*seq)
(gdb) next
1523if(!func) {
(gdb) next
1537if (func == Th(z_executenamedcmd) !statusline) {
(gdb) next
1547if (func ==