Powerline: Sudo vim - Error de espacio en disco

Creado en 29 jul. 2013  ·  9Comentarios  ·  Fuente: powerline/powerline

Cuando ejecuto vim con powerline instalado como mi usuario normal, funciona bien. Cuando sudo su para root, funciona bien, pero cuando estoy en mi usuario normal y hago sudo vim, aparece el siguiente error:

ERROR:vim:Failed to create renderer: [Errno 28] No space left on device
Error detected while processing VimEnter Auto commands for "*":
Traceback (most recent call last):
Error detected while processing VimEnter Auto commands for "*":
  File "/usr/local/lib/python2.7/dist-packages/powerline/__init__.py", line 361, in update_rendererError detected while processing VimEnter Auto commands for "*":
    self.create_renderer(**create_renderer_kwargs)
Error detected while processing VimEnter Auto commands for "*":
  File "/usr/local/lib/python2.7/dist-packages/powerline/__init__.py", line 207, in create_renderer
Error detected while processing VimEnter Auto commands for "*":
    self.renderer_options['local_themes'] = self.get_local_themes(self.ext_config.get('local_themes'))
Error detected while processing VimEnter Auto commands for "*":
  File "/usr/local/lib/python2.7/dist-packages/powerline/vim.py", line 75, in get_local_themes
Error detected while processing VimEnter Auto commands for "*":
    for key, val in local_themes.items()))
Error detected while processing VimEnter Auto commands for "*":
  File "/usr/local/lib/python2.7/dist-packages/powerline/vim.py", line 75, in <genexpr>
Error detected while processing VimEnter Auto commands for "*":
    for key, val in local_themes.items()))
Error detected while processing VimEnter Auto commands for "*":
  File "/usr/local/lib/python2.7/dist-packages/powerline/vim.py", line 66, in load_theme_config

No tengo ningún archivo .pyc en mi repositorio de powerline y el resultado de df -i es

Filesystem                     Inodes    IUsed     IFree IUse% Mounted on
/dev/mapper/it12--0391-root  14991360   421921  14569439    3% /
none                           500539        1    500538    1% /sys/fs/cgroup
udev                           498075      516    497559    1% /dev
tmpfs                          500539      488    500051    1% /run
none                           500539        5    500534    1% /run/lock
none                           500539       13    500526    1% /run/shm
none                           500539       25    500514    1% /run/user
/dev/sda1                      124496      273    124223    1% /boot

Así que no debería tener ningún problema con quedarme sin inodos.

cvim linux bug

Comentario más útil

Tuve el mismo problema en Arch Linux, después de buscar un poco, encontré esta buena guía:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

_Tenga en cuenta que el comando de arco es diferente_

Esto es lo que estaba tomando:

vim
2016-03-14 20:38:59,911:ERROR:vim:powerline:Failed to create renderer: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
Traceback (most recent call last):
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 842, in update_renderer
    self.create_renderer(**cr_kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 582, in create_renderer
    self.config_loader.set_watcher(self.common_config['watcher'])
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 84, in set_watcher
    self.watcher.transfer_calls(watcher)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 49, in transfer_calls
    getattr(watcher, attr)(*args, **kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/watcher/inotify.py", line 100, in watch
    self.handle_error()
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/inotify.py", line 138, in handle_error
    raise OSError(eno, self.os.strerror(eno) + str(extra))
OSError: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
Traceback (most recent call last):
  File "<string>", line 12, in <module>
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 896, in setup
    self.do_setup(*args, **kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/vim.py", line 211, in do_setup
    self.update_renderer()
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 842, in update_renderer
    self.create_renderer(**cr_kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 582, in create_renderer
    self.config_loader.set_watcher(self.common_config['watcher'])
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 84, in set_watcher
    self.watcher.transfer_calls(watcher)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 49, in transfer_calls
    getattr(watcher, attr)(*args, **kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/watcher/inotify.py", line 100, in watch
    self.handle_error()
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/inotify.py", line 138, in handle_error
    raise OSError(eno, self.os.strerror(eno) + str(extra))
OSError: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Press ENTER or type command to continue

Información:

df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
dev             978493    516  977977    1% /dev
run             979167    767  978400    1% /run
/dev/sda2      9175040 954797 8220243   11% /
tmpfs           979167    199  978968    1% /dev/shm
tmpfs           979167     12  979155    1% /sys/fs/cgroup
tmpfs           979167    537  978630    1% /tmp
/dev/sda1            0      0       0     - /boot/efi
tmpfs           979167     31  979136    1% /run/user/1000
tmpfs           979167     10  979157    1% /run/user/620
vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar  9 2016 16:25:55)
Included patches: 1-1529
Compiled by Arch Linux
Huge version without GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +tag_binary
+arabic          +file_in_path    +mouse_sgr       +tag_old_static
+autocmd         +find_in_path    -mouse_sysmouse  -tag_any_white
-balloon_eval    +float           +mouse_urxvt     +tcl/dyn
-browse          +folding         +mouse_xterm     +terminfo
++builtin_terms  -footer          +multi_byte      +termresponse
+byte_offset     +fork()          +multi_lang      +textobjects
+channel         +gettext         -mzscheme        +title
+cindent         -hangul_input    +netbeans_intg   -toolbar
-clientserver    +iconv           +packages        +user_commands
-clipboard       +insert_expand   +path_extra      +vertsplit
+cmdline_compl   +job             +perl/dyn        +virtualedit
+cmdline_hist    +jumplist        +persistent_undo +visual
+cmdline_info    +keymap          +postscript      +visualextra
+comments        +langmap         +printer         +viminfo
+conceal         +libcall         +profile         +vreplace
+cryptv          +linebreak       +python/dyn      +wildignore
+cscope          +lispindent      +python3/dyn     +wildmenu
+cursorbind      +listcmds        +quickfix        +windows
+cursorshape     +localmap        +reltime         +writebackup
+dialog_con      +lua/dyn         +rightleft       -X11
+diff            +menu            +ruby/dyn        -xfontset
+digraphs        +mksession       +scrollbind      -xim
-dnd             +modify_fname    +signs           -xsmp
-ebcdic          +mouse           +smartindent     -xterm_clipboard
+emacs_tags      -mouseshape      +startuptime     -xterm_save
+eval            +mouse_dec       +statusline      -xpm
+ex_extra        +mouse_gpm       -sun_workshop    
+extra_search    -mouse_jsbterm   +syntax          
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE  -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed -o vim        -lm -lncurses -lelf -lnsl    -lacl -lattr -lgpm -ldl   -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/perl5/core_perl/CORE -lperl -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc   -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lieee -lm     

Antes de aumentar /proc/sys/fs/inotify/max_user_instances

tail /proc/sys/fs/inotify/*
==> /proc/sys/fs/inotify/max_queued_events <==
16384

==> /proc/sys/fs/inotify/max_user_instances <==
128

==> /proc/sys/fs/inotify/max_user_watches <==
8192

Después

tail /proc/sys/fs/inotify/*
==> /proc/sys/fs/inotify/max_queued_events <==
16384

==> /proc/sys/fs/inotify/max_user_instances <==
128

==> /proc/sys/fs/inotify/max_user_watches <==
524288

Funciona bien ahora :)

Todos 9 comentarios

Uso sudo vim todo el tiempo, pero nunca he tenido este problema. Como usted dice, probablemente no sea un problema de inodo, pero tampoco es un problema de Powerline o Python, ya que usan bibliotecas de Linux para escribir en el disco. Debe buscar este problema como un problema de Linux y, si la encuentra, publique su solución aquí.

Puede ser un problema quedarse sin relojes inotify.

Cierre por falta de comentarios y por estar demasiado desactualizado. Aunque sigo pensando que es un problema con los relojes inotify, aunque puede intentar usar un valor diferente en /proc/sys/fs/inotify/max_user_watches .

Tuve el mismo problema en Arch Linux, después de buscar un poco, encontré esta buena guía:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

_Tenga en cuenta que el comando de arco es diferente_

Esto es lo que estaba tomando:

vim
2016-03-14 20:38:59,911:ERROR:vim:powerline:Failed to create renderer: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
Traceback (most recent call last):
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 842, in update_renderer
    self.create_renderer(**cr_kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 582, in create_renderer
    self.config_loader.set_watcher(self.common_config['watcher'])
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 84, in set_watcher
    self.watcher.transfer_calls(watcher)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 49, in transfer_calls
    getattr(watcher, attr)(*args, **kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/watcher/inotify.py", line 100, in watch
    self.handle_error()
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/inotify.py", line 138, in handle_error
    raise OSError(eno, self.os.strerror(eno) + str(extra))
OSError: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
Traceback (most recent call last):
  File "<string>", line 12, in <module>
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 896, in setup
    self.do_setup(*args, **kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/vim.py", line 211, in do_setup
    self.update_renderer()
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 842, in update_renderer
    self.create_renderer(**cr_kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 582, in create_renderer
    self.config_loader.set_watcher(self.common_config['watcher'])
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 84, in set_watcher
    self.watcher.transfer_calls(watcher)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 49, in transfer_calls
    getattr(watcher, attr)(*args, **kwargs)
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/watcher/inotify.py", line 100, in watch
    self.handle_error()
  File "/home/gableroux/.vim/bundle/powerline/powerline/lib/inotify.py", line 138, in handle_error
    raise OSError(eno, self.os.strerror(eno) + str(extra))
OSError: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Press ENTER or type command to continue

Información:

df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
dev             978493    516  977977    1% /dev
run             979167    767  978400    1% /run
/dev/sda2      9175040 954797 8220243   11% /
tmpfs           979167    199  978968    1% /dev/shm
tmpfs           979167     12  979155    1% /sys/fs/cgroup
tmpfs           979167    537  978630    1% /tmp
/dev/sda1            0      0       0     - /boot/efi
tmpfs           979167     31  979136    1% /run/user/1000
tmpfs           979167     10  979157    1% /run/user/620
vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar  9 2016 16:25:55)
Included patches: 1-1529
Compiled by Arch Linux
Huge version without GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +tag_binary
+arabic          +file_in_path    +mouse_sgr       +tag_old_static
+autocmd         +find_in_path    -mouse_sysmouse  -tag_any_white
-balloon_eval    +float           +mouse_urxvt     +tcl/dyn
-browse          +folding         +mouse_xterm     +terminfo
++builtin_terms  -footer          +multi_byte      +termresponse
+byte_offset     +fork()          +multi_lang      +textobjects
+channel         +gettext         -mzscheme        +title
+cindent         -hangul_input    +netbeans_intg   -toolbar
-clientserver    +iconv           +packages        +user_commands
-clipboard       +insert_expand   +path_extra      +vertsplit
+cmdline_compl   +job             +perl/dyn        +virtualedit
+cmdline_hist    +jumplist        +persistent_undo +visual
+cmdline_info    +keymap          +postscript      +visualextra
+comments        +langmap         +printer         +viminfo
+conceal         +libcall         +profile         +vreplace
+cryptv          +linebreak       +python/dyn      +wildignore
+cscope          +lispindent      +python3/dyn     +wildmenu
+cursorbind      +listcmds        +quickfix        +windows
+cursorshape     +localmap        +reltime         +writebackup
+dialog_con      +lua/dyn         +rightleft       -X11
+diff            +menu            +ruby/dyn        -xfontset
+digraphs        +mksession       +scrollbind      -xim
-dnd             +modify_fname    +signs           -xsmp
-ebcdic          +mouse           +smartindent     -xterm_clipboard
+emacs_tags      -mouseshape      +startuptime     -xterm_save
+eval            +mouse_dec       +statusline      -xpm
+ex_extra        +mouse_gpm       -sun_workshop    
+extra_search    -mouse_jsbterm   +syntax          
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L. -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE  -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed -o vim        -lm -lncurses -lelf -lnsl    -lacl -lattr -lgpm -ldl   -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/perl5/core_perl/CORE -lperl -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc   -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lieee -lm     

Antes de aumentar /proc/sys/fs/inotify/max_user_instances

tail /proc/sys/fs/inotify/*
==> /proc/sys/fs/inotify/max_queued_events <==
16384

==> /proc/sys/fs/inotify/max_user_instances <==
128

==> /proc/sys/fs/inotify/max_user_watches <==
8192

Después

tail /proc/sys/fs/inotify/*
==> /proc/sys/fs/inotify/max_queued_events <==
16384

==> /proc/sys/fs/inotify/max_user_instances <==
128

==> /proc/sys/fs/inotify/max_user_watches <==
524288

Funciona bien ahora :)

gracias @GabLeRoux , trabajando

Gracias @GabLeRoux , ¡funciona muy bien!

Gracias de nuevo @GabLeRoux por la respuesta detallada, me ayudó en Fedora 27 hoy.

Tuve el mismo problema después de instalar una herramienta de respaldo, que estaba procesando y cargando más de 183k archivos en ese momento, por lo que esto explica por qué me estoy quedando sin relojes inotify.
echo 524288 > /proc/sys/fs/inotify/max_user_watches arregló.

@JensTimmerman Gracias por la sugerencia. Esto funcionó para mí en Ubuntu 16.04.

Solo yo tenía que:

$ sudo su
$ echo 524288 > /proc/sys/fs/inotify/max_user_watches
$ exit
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

golfdish picture golfdish  ·  3Comentarios

Chris-Bee picture Chris-Bee  ·  3Comentarios

damienstanton picture damienstanton  ·  5Comentarios

adamk33n3r picture adamk33n3r  ·  4Comentarios

kataev picture kataev  ·  6Comentarios