Powerline: Sudo Vim-磁盘空间错误

创建于 2013-07-29  ·  9评论  ·  资料来源: powerline/powerline

当我以普通用户身份安装电源线运行vim时,它运行良好。 当我将sudo su设为root时,它可以正常运行,但是当我使用普通用户并且执行sudo vim时,出现以下错误:

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

我的电力线存储库中没有任何.pyc文件,并且df -i的结果是

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

因此,用尽inode不会有任何问题。

cvim linux bug

最有用的评论

我在Arch Linux上遇到了同样的问题,经过一番搜索之后,我发现了这个不错的指南:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

_注意arch命令是不同的_

这是我所拥有的:

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

信息:

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     

在我增加/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

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

现在工作正常:)

所有9条评论

我一直都在使用sudo vim,但是我从来没有遇到过这个问题。 正如您所说,这可能不是inode问题,但也不是Powerline或Python问题,因为它们使用Linux库来写磁盘。 您应该将此问题作为Linux问题进行搜索,如果找到它,请在此处发布您的解决方案。

用完inotify手表可能是一个问题。

由于缺乏反馈和过时而关闭。 尽管我仍然认为inotify手表存在问题,但是您可以尝试在/proc/sys/fs/inotify/max_user_watches使用其他值。

我在Arch Linux上遇到了同样的问题,经过一番搜索之后,我发现了这个不错的指南:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

_注意arch命令是不同的_

这是我所拥有的:

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

信息:

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     

在我增加/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

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

现在工作正常:)

谢谢@GabLeRoux ,工作

谢谢@GabLeRoux ,它很棒!

再次感谢@GabLeRoux的详细回复,今天对Fedora 27有所帮助。

安装备份工具后出现了同样的问题,该工具当时正在处理和上传183k +文件,因此这解释了为什么我的手表无法用完了。
echo 524288 > /proc/sys/fs/inotify/max_user_watches修复了它。

@JensTimmerman感谢您的建议。 这在Ubuntu 16.04上对我有用。

只有我必须:

$ sudo su
$ echo 524288 > /proc/sys/fs/inotify/max_user_watches
$ exit
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

treyhunner picture treyhunner  ·  16评论

deviantintegral picture deviantintegral  ·  15评论

starlays picture starlays  ·  26评论

frol picture frol  ·  44评论

abstiles picture abstiles  ·  23评论