Command-T Crashes On Second Use
-
wavded
I'm running Vim 7.3, Ruby 1.8.7, on Ubuntu Linux 10.10. And sometime either around my upgrade to Vim 7.3 or upgrade to Command-T 1.0.1, it will crash the second time I use the command w/ all this error output:
Vim: Caught deadly signal SEGV [11:56:40] Vim: Finished.
Any ideas? Any way I can get more helpful information to you?
Thanks, wavded
-
wavded
Looks like it varies, I can't put my finger on it. Sometimes its twice, sometimes I can use it longer. If I type fast it seems to crash more than if I wait for it to populate.. but even that could be a sketchy observation. Sorry, wish I had better tests for you.
-
Greg Hurrell
There are a couple of theories on why this kind of crash might be produced.
One is that there are some bugs in Vim 7.3's Ruby support, and that dropping back to 7.2 fixes the problem.
I actually think that the more likely explanation is simply that the plug-in was miscompiled (ie. a different version of Ruby was used when building Command-T than was used when building Vim). This mistake comes up over and over again, and is always fixed by using the same version of Ruby for both:
- issue #1741 (fixed by rebuilding using matching version of Ruby)
- issue #1647 (various opinions, but finally fixed by using matching version of Ruby)
- thread, "segmentation fault after make in command-t" (fixed by re-building, which I'll bet really means, building using, you guess it, matching version of Ruby)
- thread, "VIM stopped working after installing Command-T even though Ruby 1.8.x is installed" (fixed by re-building; again, using a matching version of Ruby)
Those are just a few examples from "recent" history here. But if you look back through the forums and on the issue tracker you'll see literally dozens of issues where people miscompiled and fixed the problem by compiling correctly.
I wish there were a way of making the whole process more foolproof, but it's unfortunately a quite complex ecosystem in which people love playing around with their tools and the result is that mismatching Ruby versions are dishearteningly common, but nothing I can do about that.
Check out the troubleshooting section in the docs for information that you can collect in order to check to see you're actually using matching versions.
-
anonymous
Thanks for your feedback Wincent. I upgraded to Vim 7.3 on Ubuntu through a PPA which seems to have compiled with the system Ruby, here's the line in vim --version:
GEFILE64_SOURCE=1 -I/usr/lib/ruby/1.8/i686-linux -DRUBY_VERSION=18
When running
which ruby
, I get/usr/bin/ruby
Which has only one Ruby folder, which is 1.8, and I also have the folder listed in vim version, although I don't have a file called i686-linux in there. I'll keep looking.
-
Greg Hurrell
Can you post the full output of
vim --version
and the full output of yourruby extconf.rb && make
from the Command-T build? -
Jonathan
Hi everyone, having a similar problem. Command-T built and works in Vim the first time, but when invoking for a second time it segfaults. Os is ubuntu 10.04, ruby version is 1.8.7, Vim is 7.3. Ruby and Vim installed from ppas (e.g. as binary not compiled from source).
vim --version:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 16 2010 19:19:29) Modified by pkg-vim-maintainers@lists.alioth.debian.org Compiled by buildd@ Huge version with GTK2-GNOME GUI. Features included (+) or not (-): +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +lua/dyn +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl/dyn +persistent_undo +postscript +printer +profile +python/dyn +python3/dyn +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white +tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "$VIM/gvimrc" user gvimrc file: "$HOME/.gvimrc" system menu file: "$VIMRUNTIME/menu.vim" fall-back for $VIM: "/usr/share/vim" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -DORBIT2=1 -pthread -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/directfb -I/usr/include/libpng12 -Wall -g -O2 -I/usr/include/tcl8.4 -D_REENTRANT=1 -D_THREAD_SAFE=1 -D_LARGEFILE64_SOURCE=1 -I/usr/lib/ruby/1.8/i486-linux -DRUBY_VERSION=18 Linking: gcc -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,--as-needed -o vim -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lgnomeui-2 -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgconf-2 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXt -lncurses -lselinux -lacl -lgpm -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.10/CORE -L/usr/lib -ltcl8.4 -lieee -lruby1.8 -lrt -lm
Output from ruby extconf.rb && make:
checking for ruby.h... yes creating Makefile gcc -I. -I/usr/lib/ruby/1.8/i486-linux -I/usr/lib/ruby/1.8/i486-linux -I. -DHAVE_RUBY_H -D_FILE_OFFSET_BITS=64 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -std=c99 -Wall -Wextra -Wno-unused-parameter -c ext.c gcc -I. -I/usr/lib/ruby/1.8/i486-linux -I/usr/lib/ruby/1.8/i486-linux -I. -DHAVE_RUBY_H -D_FILE_OFFSET_BITS=64 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -std=c99 -Wall -Wextra -Wno-unused-parameter -c matcher.c gcc -I. -I/usr/lib/ruby/1.8/i486-linux -I/usr/lib/ruby/1.8/i486-linux -I. -DHAVE_RUBY_H -D_FILE_OFFSET_BITS=64 -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -std=c99 -Wall -Wextra -Wno-unused-parameter -c match.c gcc -shared -o ext.so ext.o matcher.o match.o -L. -L/usr/lib -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -lruby1.8 -lpthread -lrt -ldl -lcrypt -lm -lc
-
Greg Hurrell
As far as I can tell there are no glaring discrepancies here between the Ruby-related flags used at link time, so one thing you could try would be building Vim from source so that you can have more control over exactly what flags are passed in.
It might be related to a known bug in Vim 7.3's "largefile" support (see ticket #1617), although if that's true, this is the first time it's actually caused a crash. To find out if it's the case, you'd build Vim from source using a
configure
line something like this:$ ./configure --with-features=huge \ --enable-luainterp \ --enable-perlinterp \ --enable-pythoninterp \ --enable-rubyinterp \ --enable-gui=gtk2 \ --disable-largefile
(You probably want to explicitly enable some other features and disable others, but for the purposes of testing this out you definitely need
--enable-rubyinterp
and--disable-largefile
). -
wavded
vim version is: I doubled checked with the author of the binary and it was compiled using the default ruby.
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 2 2010 10:59:19) Compiled by buildd@ Huge version with GTK2-GNOME GUI. Features included (+) or not (-): +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +persistent_undo +postscript +printer +profile +python -python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white +tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "$VIM/gvimrc" user gvimrc file: "$HOME/.gvimrc" system menu file: "$VIMRUNTIME/menu.vim" fall-back for $VIM: "/usr/share/vim" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -DORBIT2=1 -pthread -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12 -Wall -g -O2 -I/usr/include/tcl8.4 -D_REENTRANT=1 -D_THREAD_SAFE=1 -D_LARGEFILE64_SOURCE=1 -I/usr/lib/ruby/1.8/i686-linux -DRUBY_VERSION=18 Linking: gcc -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,--as-needed -o vim -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lgnomeui-2 -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lpng12 -lgconf-2 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXt -lncurses -lselinux -lacl -lgpm -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.10/CORE -lperl -L/usr/lib/python2.6/config -lpython2.6 -lutil -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib -ltcl8.4 -lieee -lruby1.8 -lrt -lm
Here is extconf.rb && make
gcc -shared -o ext.so ext.o match.o matcher.o -L. -L/usr/lib -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -lruby1.8 -lpthread -lrt -ldl -lcrypt -lm -lc
-
wavded
I ended up reverting to Vim 7.2 (default Ubuntu 10.10) package, I can live without 7.3 features for the time being. I hope this gets resolved. Hopefully 11.04 will come prepackaged with 7.3.
-
wavded
Just to follow up on this post. I built vim from source with the configuration options Wincent had specified above (minus the largefile one) and it worked great, haven't had any crashes.
-
anonymous
Installed vim from source and things worked perfectly. :)
Reply
This topic is now closed.