Command-T Crashes On Second Use

  1. 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

  2. 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.

  3. 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:

    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.

  4. 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.

  5. Greg Hurrell

    Can you post the full output of vim --version and the full output of your ruby extconf.rb && make from the Command-T build?

  6. 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
    
  7. 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).

  8. 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
  9. 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.

  10. 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.

  11. anonymous

    Installed vim from source and things worked perfectly. :)

Reply

This topic is now closed.