Bug#465163: [vim] command line file name completion triggers terminal freeze + 100% cpu load

Roland Eggner roland.edv at eggner.at
Mon Feb 11 00:23:22 UTC 2008


Package: vim
Version: 1:7.1-241+1
Severity: normal

--- Please enter the report below this line. ---

vim command line file name completion triggers terminal freeze + 100% cpu load,
ALWAYS when I do this steps:

1.  I have a "manually" maintained list of MRU files = list with one file name
per line, some followed by tab and a comment, I open this file
2.  enter ":r!ls /etc/ba" and try completion by Ctrl-L

I discovered only one possibility to leave this 100% cpu load state:  kill -9


it does NOT matter if in KDE konsole (TERM=xterm) or text konsole (TERM=linux)
I can reproduce the problem ONLY when vim displays my mentioned MRU list file
I can reproduce the problem with "vim --noplugins"
I cannot reproduce the problem with "vim -u NONE"


tail of strace output:
----------------------
5501  write(1, "\33[?25l\33[m\33[101;242H~@k\33[16;1H", 29) = 29
5501  open(".", O_RDONLY)               = 3
5501  fchdir(3)                         = 0
5501  chdir(".vim")                     = 0
5501  getcwd("/home/roland/.vim", 1024) = 18
5501  fchdir(3)                         = 0
5501  close(3)                          = 0
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "\33[101;242H   \33[15;1H\33[100;211H\33["..., 83) = 83
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {2, 296000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, ":", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "\33[?25l\33[m\33[101;242H:\33[15;1H", 27) = 27
5501  write(1, "\33[101;1H\33[K\33[101;1H:", 20) = 20
5501  ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig -icanon -echo ...}) = 0
5501  ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost -isig -icanon -echo ...}) = 0
5501  ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig -icanon -echo ...}) = 0
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "\33[?12l\33[?25h", 12)  = 12
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 488000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "l", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "l", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 720000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "s", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "s", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {1, 984000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "\177", 250)              = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "\33[?25l\33[101;3H\33[K\33[101;3H\33[?12l\33"..., 37) = 37
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 824000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "\177", 250)              = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "\33[?25l\33[101;2H\33[K\33[101;2H\33[?12l\33"..., 37) = 37
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 624000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "r", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "r", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 184000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "!", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "!", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 468000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, " ", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, " ", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 760000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "l", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "l", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 804000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "s", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "s", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {1, 372000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, " ", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, " ", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 84000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "/", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "/", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 644000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "e", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "e", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 860000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "t", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "t", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 560000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "c", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "c", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {2, 784000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "/", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "/", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 504000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "b", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "b", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {1, 352000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "a", 250)                 = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  write(1, "a", 1)                  = 1
5501  select(1, [0], NULL, [0], {4, 0}) = 1 (in [0], left {3, 204000})
5501  select(1, [0], NULL, [0], NULL)   = 1 (in [0])
5501  read(0, "\f", 250)                = 1
5501  select(1, [0], NULL, [0], {0, 0}) = 0 (Timeout)
5501  +++ killed by SIGKILL +++





--- System information. ---
Architecture: i386
Kernel:       Linux 2.6.23.12roland1

Debian Release: 4.0
  500 unstable        gd.tuwien.ac.at 
  500 testing         security.debian.org 
  500 testing         gd.tuwien.ac.at 
  500 oldstable       gd.tuwien.ac.at 
  500 edgy            wine.budgetdedicated.com 
    1 experimental    gd.tuwien.ac.at 

--- Package information. ---
Depends                   (Version) | Installed
===================================-+-====================
libc6                    (>= 2.7-1) | 2.7-3
libgpmg1              (>= 1.19.6-1) | 1.19.6-21
libncurses5     (>= 5.6+20071006-3) | 5.6+20071215-1
vim-common          (= 1:7.1-241+1) | 1:7.1-241+1
vim-runtime         (= 1:7.1-241+1) | 1:7.1-241+1


-- 
Roland Eggner






More information about the pkg-vim-maintainers mailing list