Hi, in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=353863 Sebastien Desreux reported a bug about zsh with its completion system in a specific situation. To trigger the bug (at least 4.3.10 and 4.3.11 in Debian are known to be affected by this bug): zsh -f autoload -Uz compinit; compinit; alias ubox=ls ubo<tab> Then the zsh process is hanging in an endless loop, eating CPU. I've just stepped down the problem in gdb, it seems to be hanging in this code forever (I've extracted the relevant parts that repeat-and-repeat-again out of my gdb session, hope this helps): ,---- [ gdb session - the relevant parts / the endless loop ] | get_comp_string (lst=4) at ../../../Src/Zle/zle_tricky.c:1487 | nnb = tt + nclen; | nnb = tt + nclen; | for (tt = s; tt < s + zlemetacs_qsub - wb;) { | if (*tt == Inbrack) { | } else if (i && *tt == Outbrack) { | int nclen = MB_METACHARLEN(tt); | mb_metacharlenconv (s=0x23aaf32 "", wcp=0x0) at ../../Src/utils.c:4439 | if (!isset(MULTIBYTE)) { | if (itok(*s)) { | return mb_metacharlenconv_r(s, wcp, &mb_shiftstate); | mb_metacharlenconv_r (s=0x23aaf32 "", wcp=0x0, mbsp=0x6b1f30) at ../../Src/utils.c:4389 | { | ret = mbrtowc(&wc, &inchar, 1, mbsp); | { | for (ptr = s; *ptr; ) { | if (wcp) | if (ptr > s) { | memset(mbsp, 0, sizeof(*mbsp)); | if (ptr > s) { | } | get_comp_string (lst=4) at ../../../Src/Zle/zle_tricky.c:1486 | if (itype_end(tt, IIDENT, 1) == tt) | int nclen = MB_METACHARLEN(tt); | if (itype_end(tt, IIDENT, 1) == tt) | itype_end (ptr=0x23aaf32 "", itype=128, once=1) at ../../Src/utils.c:3491 | { | if (isset(MULTIBYTE) && | (itype != IIDENT || !isset(POSIXIDENTIFIERS))) { | mb_metacharinit(); | mb_metacharinit () at ../../Src/utils.c:449 | memset(&mb_shiftstate, 0, sizeof(mb_shiftstate)); | mb_metacharinit () at ../../Src/utils.c:450 | } | itype_end (ptr=0x23aaf32 "", itype=128, once=1) at ../../Src/utils.c:3498 | int len = mb_metacharlenconv(ptr, &wc); | while (*ptr) { | } `---- regards, -mika- -- http://michael-prokop.at/ || http://adminzen.org/ http://grml-solutions.com/ || http://grml.org/
Attachment:
signature.asc
Description: Digital signature