{"action":"created","issue":{"url":"https://api.github.com/repos/scrooloose/syntastic/issues/1396","labels_url":"https://api.github.com/repos/scrooloose/syntastic/issues/1396/labels{/name}","comments_url":"https://api.github.com/repos/scrooloose/syntastic/issues/1396/comments","events_url":"https://api.github.com/repos/scrooloose/syntastic/issues/1396/events","html_url":"https://github.com/scrooloose/syntastic/issues/1396","id":70034682,"number":1396,"title":"':tab ball' freezes vim when syntastic is showing errors","user":{"login":"GertBurger","id":23653,"avatar_url":"https://avatars.githubusercontent.com/u/23653?v=3","gravatar_id":"","url":"https://api.github.com/users/GertBurger","html_url":"https://github.com/GertBurger","followers_url":"https://api.github.com/users/GertBurger/followers","following_url":"https://api.github.com/users/GertBurger/following{/other_user}","gists_url":"https://api.github.com/users/GertBurger/gists{/gist_id}","starred_url":"https://api.github.com/users/GertBurger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GertBurger/subscriptions","organizations_url":"https://api.github.com/users/GertBurger/orgs","repos_url":"https://api.github.com/users/GertBurger/repos","events_url":"https://api.github.com/users/GertBurger/events{/privacy}","received_events_url":"https://api.github.com/users/GertBurger/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-22T06:19:32Z","updated_at":"2015-04-22T19:11:45Z","closed_at":null,"body":"Steps:\r\n1) Open multiple files that contain syntax errors: `vim a.js b.js`\r\n2) Execute `:tab ball` **twice**\r\n\r\nVim should be using 100% CPU now. Tested this with javascript and python files.\r\n\r\nSometimes one can ctrl-c it and it will give `Error detected while processing /usr/share/vim/vim74/ftplugin/qf.vim`\r\n\r\nvimrc for testing:\r\n```\r\ncall plug#begin('~/.vim/plugged')\r\n\r\nPlug 'scrooloose/syntastic'\r\n\r\ncall plug#end()\r\n\r\nset nocompatible\r\nfiletype plugin indent on\r\n\r\n\" Syntastic settings\r\nset statusline+=%#warningmsg#\r\nset statusline+=%{SyntasticStatuslineFlag()}\r\nset statusline+=%*\r\n\r\nlet g:syntastic_always_populate_loc_list = 1\r\nlet g:syntastic_auto_loc_list = 1\r\nlet g:syntastic_check_on_open = 1\r\nlet g:syntastic_check_on_wq = 0\r\n```\r\n\r\nVersions:\r\n-Ubuntu 14.04 64-bit\r\n-Latest syntastic as loaded via Plug(4fbe5f52c7c485da1f1169cfb16a69fb241667b3) also occurred in a version from a few months back.\r\n```\r\nSyntastic version: 3.6.0-76 (Vim 704, Linux)\r\nInfo for filetype: javascript\r\nGlobal mode: active\r\nFiletype javascript is active\r\nThe current file will be checked automatically\r\nAvailable checker: jshint\r\nCurrently enabled checker: jshint\r\n```\r\n-Vim 7.4.052-1ubuntu3\r\n```\r\n:ver                                                                                                                                                                                            \r\nVIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2 2014 19:39:47)\r\nIncluded patches: 1-52\r\nModified by pkg-vim-maintainers@lists.alioth.debian.org\r\nCompiled by buildd@\r\nHuge version with GTK2-GNOME GUI.  Features included (+) or not (-):\r\n+acl             +cmdline_compl   +diff            +find_in_path    +keymap          +modify_fname    +mouse_xterm     +profile         -sniff           +termresponse    +vreplace        -xterm_save\r\n+arabic          +cmdline_hist    +digraphs        +float           +langmap         +mouse           +multi_byte      +python          +startuptime     +textobjects     +wildignore      +xpm\r\n+autocmd         +cmdline_info    +dnd             +folding         +libcall         +mouseshape      +multi_lang      -python3         +statusline      +title           +wildmenu\r\n+balloon_eval    +comments        -ebcdic          -footer          +linebreak       +mouse_dec       -mzscheme        +quickfix        -sun_workshop    +toolbar         +windows\r\n+browse          +conceal         +emacs_tags      +fork()          +lispindent      +mouse_gpm       +netbeans_intg   +reltime         +syntax          +user_commands   +writebackup\r\n++builtin_terms  +cryptv          +eval            +gettext         +listcmds        -mouse_jsbterm   +path_extra      +rightleft       +tag_binary      +vertsplit       +X11\r\n+byte_offset     +cscope          +ex_extra        -hangul_input    +localmap        +mouse_netterm   +perl            +ruby            +tag_old_static  +virtualedit     -xfontset\r\n+cindent         +cursorbind      +extra_search    +iconv           +lua             +mouse_sgr       +persistent_undo +scrollbind      -tag_any_white   +visual          +xim\r\n+clientserver    +cursorshape     +farsi           +insert_expand   +menu            -mouse_sysmouse  +postscript      +signs           +tcl             +visualextra     +xsmp_interact\r\n+clipboard       +dialog_con_gui  +file_in_path    +jumplist        +mksession       +mouse_urxvt     +printer         +smartindent     +terminfo        +viminfo         +xterm_clipboard\r\n   system vimrc file: \"$VIM/vimrc\"\r\n     user vimrc file: \"$HOME/.vimrc\"\r\n 2nd user vimrc file: \"~/.vim/vimrc\"\r\n      user exrc file: \"$HOME/.exrc\"\r\n  system gvimrc file: \"$VIM/gvimrc\"\r\n    user gvimrc file: \"$HOME/.gvimrc\"\r\n2nd user gvimrc file: \"~/.vim/gvimrc\"\r\n    system menu file: \"$VIMRUNTIME/menu.vim\"\r\n  fall-back for $VIM: \"/usr/share/vim\"\r\nCompilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-\r\n2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/inc\r\nlude/harfbuzz   -pthread -DORBIT2=1 -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/libbonob\r\noui-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/x86_64-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/x\r\n86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/li\r\nbxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio\r\n-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12     -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1     -I/usr/include/tcl8.6\r\n  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1\r\nLinking: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpa\r\nngoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype     -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2\r\n -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 -lfontconfig -lfreetype -lgconf-2 -lgthread-2.0 -\r\nlgmodule-2.0 -lgobject-2.0 -lglib-2.0   -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector -L/usr/local/lib  -L/\r\nusr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions  -L/usr/lib/\r\nx86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm  -L/usr/lib\r\n```"},"comment":{"url":"https://api.github.com/repos/scrooloose/syntastic/issues/comments/95307486","html_url":"https://github.com/scrooloose/syntastic/issues/1396#issuecomment-95307486","issue_url":"https://api.github.com/repos/scrooloose/syntastic/issues/1396","id":95307486,"user":{"login":"lcd047","id":1281736,"avatar_url":"https://avatars.githubusercontent.com/u/1281736?v=3","gravatar_id":"","url":"https://api.github.com/users/lcd047","html_url":"https://github.com/lcd047","followers_url":"https://api.github.com/users/lcd047/followers","following_url":"https://api.github.com/users/lcd047/following{/other_user}","gists_url":"https://api.github.com/users/lcd047/gists{/gist_id}","starred_url":"https://api.github.com/users/lcd047/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lcd047/subscriptions","organizations_url":"https://api.github.com/users/lcd047/orgs","repos_url":"https://api.github.com/users/lcd047/repos","events_url":"https://api.github.com/users/lcd047/events{/privacy}","received_events_url":"https://api.github.com/users/lcd047/received_events","type":"User","site_admin":false},"created_at":"2015-04-22T19:11:44Z","updated_at":"2015-04-22T19:11:44Z","body":"What seems to be going on here is a sort of `autocmd` mutual recursion loop between the input files.  You can avoid the loop either by setting `g:syntastic_auto_loc_list` to something other than 1, or by switching to passive mode before the second run of `:tab ball`.  I don't think there is any way for syntastic to detect the loop using Vim's API, and the corresponding functionality is too useful to turn off.  I don't have any reasonable fix at this time, sorry."}}