Powerline: Sudo vim - Erreur d'espace disque

Créé le 29 juil. 2013  ·  9Commentaires  ·  Source: powerline/powerline

Lorsque j'exécute vim avec Powerline installé en tant qu'utilisateur normal, il fonctionne correctement. Lorsque je sudo su pour root, cela fonctionne bien, mais lorsque je suis sur mon utilisateur normal et que je fais sudo vim, j'obtiens l'erreur suivante:

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

Je n'ai aucun fichier .pyc dans mon dépôt Powerline et le résultat de df -i est

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

Je ne devrais donc pas avoir de problème avec le manque d'inodes.

cvim linux bug

Commentaire le plus utile

J'ai eu le même problème sur Arch Linux, après avoir cherché un peu, j'ai trouvé ce joli guide:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

_Notez que la commande arch est différente_

Voici ce que j'avais:

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

Informations:

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     

Avant d'augmenter /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

Aprè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

Fonctionne bien maintenant :)

Tous les 9 commentaires

J'utilise sudo vim tout le temps, mais je n'ai jamais eu ce problème. Comme vous le dites, ce n'est probablement pas un problème d'inode, mais ce n'est pas non plus un problème Powerline ou Python car ils utilisent des bibliothèques Linux pour écrire sur le disque. Vous devez rechercher ce problème en tant que problème Linux, et veuillez publier votre solution ici si vous le trouvez.

Cela peut être un problème avec le manque de montres inotify.

Fermeture en raison d'un manque de rétroaction et d'être trop obsolète. Bien que je pense toujours que c'est un problème avec les montres inotify, vous pouvez essayer d'utiliser une valeur différente dans /proc/sys/fs/inotify/max_user_watches .

J'ai eu le même problème sur Arch Linux, après avoir cherché un peu, j'ai trouvé ce joli guide:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

_Notez que la commande arch est différente_

Voici ce que j'avais:

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

Informations:

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     

Avant d'augmenter /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

Aprè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

Fonctionne bien maintenant :)

merci @GabLeRoux , travaillant

Merci @GabLeRoux , ça marche très bien!

Merci encore @GabLeRoux pour la réponse détaillée, m'a aidé sur Fedora 27 aujourd'hui.

J'ai eu le même problème après l'installation d'un outil de sauvegarde, qui traitait et téléchargeait plus de 183000 fichiers à l'époque, ce qui explique pourquoi je suis à court de montres inotify.
echo 524288 > /proc/sys/fs/inotify/max_user_watches corrigé.

@JensTimmerman Merci pour la suggestion. Cela a fonctionné pour moi sur Ubuntu 16.04.

Seulement je devais:

$ sudo su
$ echo 524288 > /proc/sys/fs/inotify/max_user_watches
$ exit
Cette page vous a été utile?
0 / 5 - 0 notes