Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

g:plug_timeout is not respected for SSL connection timeout #1285

Closed
3 of 11 tasks
yous opened this issue Jul 3, 2024 · 6 comments · Fixed by #1289
Closed
3 of 11 tasks

g:plug_timeout is not respected for SSL connection timeout #1285

yous opened this issue Jul 3, 2024 · 6 comments · Fixed by #1289

Comments

@yous
Copy link
Contributor

yous commented Jul 3, 2024

When I do :PlugUpdate, it takes much more time than expected according to the configuration of g:plug_timeout and g:plug_retries.

let g:plug_timeout = 10
let g:plug_retries = 0

It takes over 300 seconds, and it's because of vim-open-color entry, which gets SSL connection timeout.

Updated. Elapsed time: 306.388908 sec.
[==========================================================xx]

- Finishing ... Done!
- vim-rubocop: Already up to date.
- fzf: Already up to date.
- vim-plugin-AnsiEsc: Already up to date.
- lightline.vim: Already up to date.
- matchit: Already up to date.
- vim-diff-fold: Already up to date.
- php.vim-html-enhanced: Already up to date.
- vim-rst: Already up to date.
- bullets.vim: Already up to date.
- vim-smali: Already up to date.
- vim-gtfo: Already up to date.
- rbs.vim: Already up to date.
- aheui.vim: Already up to date.
- tabular: Already up to date.
- adblock-filter.vim: Already up to date.
- vim-polyglot: Already up to date.
- vim-markdown: Already up to date.
x vim-open-color:
    fatal: unable to access 'https://github.com/yous/vim-open-color.git/': SSL connection timeout
- vim-eunuch: Already up to date.
- coc.nvim: Already up to date.
- vim-repeat: Already up to date.
- vim-git: Already up to date.
x goyo.vim:
    fatal: unable to access 'https://github.com/junegunn/goyo.vim.git/': Recv failure: Connection reset by peer
- vim-wordmotion: Already up to date.
- vim-obsession: Already up to date.
- vim-endwise: Already up to date.
- gv.vim: Already up to date.
- vader.vim: Already up to date.
- rainbow_parentheses.vim: Already up to date.
- vim-unimpaired: Already up to date.
- editorconfig-vim: Already up to date.
- vim-gas: Already up to date.
- vim-rake: Already up to date.
- vim-python-matchit: Already up to date.
- vim-signify: Already up to date.
- vim-oscyank: Already up to date.
- smt-vim: Already up to date.
- a.vim: Already up to date.
- vim-tradewinds: Already up to date.
- echodoc.vim: Already up to date.
- vim-fugitive: Already up to date.
- vim-dirdiff: Already up to date.
- vim-closetag: Already up to date.
- vim-sandwich: Already up to date.
- vinarise.vim: Already up to date.
- ale: Already up to date.
- Recover.vim: Already up to date.
- fzf.vim: Already up to date.
- zoomwintab.vim: Already up to date.
- vim-dirvish-git: Already up to date.
- splitjoin.vim: Already up to date.
- diffchar.vim: Already up to date.
- quick-scope: Already up to date.
- Colorizer: Already up to date.
- vim-gutentags: Already up to date.
- vim-plist: Already up to date.
- vim-dirvish: Already up to date.
- FixCursorHold.nvim: Already up to date.
- vimtex: Already up to date.
- traces.vim: Already up to date.

Pasting my Plug block, but it doesn't really relevant with this issue.

Plug block
call plug#begin(s:vimfiles . '/plugged')

" -----------------------------------------------------------------------------
" Colorscheme
" -----------------------------------------------------------------------------
Plug 'yous/vim-open-color'

" -----------------------------------------------------------------------------
" General
" -----------------------------------------------------------------------------
if !exists('+fixendofline')
  " Preserve missing EOL at the end of text files
  Plug 'yous/PreserveNoEOL', {
        \ 'commit': '9ef2f01',
        \ 'frozen': 1 }
endif
" EditorConfig plugin for Vim
Plug 'editorconfig/editorconfig-vim'
" A Plugin to show a diff, whenever recovering a buffer
Plug 'chrisbra/Recover.vim'
" obsession.vim: continuously updated session files
Plug 'tpope/vim-obsession'
if has('timers') && exists('v:exiting')
  " Fix CursorHold Performance
  Plug 'antoinemadec/FixCursorHold.nvim'
endif
" Ultimate hex editing system with Vim
Plug 'Shougo/vinarise.vim'
" Vim sugar for the UNIX shell commands
Plug 'tpope/vim-eunuch'
" the missing window movement
if exists('*win_screenpos') || exists('nvim_win_get_position')
  Plug 'andymass/vim-tradewinds'
endif
" Vim plugin to diff two directories
Plug 'will133/vim-dirdiff'
" Vim: file and hunk folding support for diff/patch files.
Plug 'sgeb/vim-diff-fold'
" A Vim plugin to copy text through SSH with OSC52
Plug 'ojroques/vim-oscyank'
" A Vim plugin that manages your tag files
if executable('ctags') || executable('cscope')
  if v:version >= 800
    Plug 'ludovicchabant/vim-gutentags'
  elseif v:version >= 704
    Plug 'ludovicchabant/vim-gutentags', { 'branch': 'vim7' }
  endif
endif
" Vim Git runtime files
Plug 'tpope/vim-git'
" Git wrapper
Plug 'tpope/vim-fugitive'
" A git commit browser
" Plug 'tpope/vim-fugitive' |
Plug 'junegunn/gv.vim'

" -----------------------------------------------------------------------------
" Browsing
" -----------------------------------------------------------------------------
if !has('win32') && (!has('win32unix') || executable('go'))
  " A command-line fuzzy finder written in Go
  Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
  Plug 'junegunn/fzf.vim'
endif
" Directory viewer for Vim
Plug 'justinmk/vim-dirvish'
if !has('win32')
  " Git support for dirvish.vim
  Plug 'kristijanhusak/vim-dirvish-git'
endif
if !has('nvim') && !has('patch-8.1.1218')
  " Tab-specific directories
  Plug 'vim-scripts/tcd.vim'
endif
" Go to Terminal or File manager
Plug 'justinmk/vim-gtfo'

" -----------------------------------------------------------------------------
" Completion and lint
" -----------------------------------------------------------------------------
" Intellisense engine for Vim8 & Neovim, full language server protocol support
" as VSCode
if executable('node')
  if has('nvim-0.4.0') || !has('nvim') && has('patch-8.1.1719')
    Plug 'neoclide/coc.nvim', { 'branch': 'release' }
  elseif has('nvim-0.3.2') || !has('nvim') && has('patch-8.0.1453')
    Plug 'neoclide/coc.nvim', { 'tag': 'v0.0.81' }
  endif
endif
" Print documents in echo area
if exists('v:completed_item') && exists('v:event')
  Plug 'Shougo/echodoc.vim'
endif
if has('nvim') && has('timers') ||
      \ has('timers') && exists('*job_start') && exists('*ch_close_in')
  " Asynchronous Lint Engine
  Plug 'dense-analysis/ale'
else
  " Syntax checking plugin
  Plug 'vim-syntastic/syntastic'
endif

" -----------------------------------------------------------------------------
" Motions and text changing
" -----------------------------------------------------------------------------
" Autocomplete if end
Plug 'tpope/vim-endwise'
" Lightning fast left-right movement in Vim
Plug 'unblevable/quick-scope'
" More useful word motions for Vim
Plug 'chaoren/vim-wordmotion'
" The matchit plugin from Vim
Plug 'chrisbra/matchit'
" Python matchit support
Plug 'voithos/vim-python-matchit', { 'for': 'python' }
" Bullets.vim is a Vim/NeoVim plugin for automated bullet lists.
Plug 'dkarter/bullets.vim'
" Auto close (X)HTML tags
Plug 'alvan/vim-closetag', {
      \ 'for': ['html', 'javascript.jsx', 'php', 'xhtml', 'xml'] }
" Simplify the transition between multiline and single-line code
Plug 'AndrewRadev/splitjoin.vim'
" The set of operator and textobject plugins to search/select/edit sandwiched
" textobjects
Plug 'machakann/vim-sandwich'
" Pairs of handy bracket mappings
Plug 'tpope/vim-unimpaired'
if v:version == 704 && !has('patch754') || v:version < 704 && v:version >= 700
  " Produce increasing/decreasing columns of numbers, dates, or daynames
  Plug 'vim-scripts/VisIncr'
endif
" Switch between source files and header files
Plug 'vim-scripts/a.vim'
" Enable repeating supported plugin maps with "."
Plug 'tpope/vim-repeat'

" -----------------------------------------------------------------------------
" Vim UI
" -----------------------------------------------------------------------------
" A light and configurable statusline/tabline for Vim
Plug 'itchyny/lightline.vim'
" Highlight the exact differences, based on characters and words
Plug 'rickhowe/diffchar.vim'
if !has('patch-8.1.1270') && !has('nvim-0.4.0')
  " vim-searchindex: display number of search matches & index of a current match
  Plug 'google/vim-searchindex'
endif
if has('patch-8.0.1206') || has('nvim-0.2.3')
  " Range, pattern and substitute preview for Vim
  Plug 'markonm/traces.vim'
elseif v:version >= 703
  " :substitute preview
  Plug 'osyo-manga/vim-over'
endif
" Simpler Rainbow Parentheses
Plug 'junegunn/rainbow_parentheses.vim', { 'for': [
      \ 'clojure',
      \ 'lisp',
      \ 'racket',
      \ 'scheme'] }
if has('patch-8.0.902') || has('nvim')
  " Show a diff using Vim its sign column.
  Plug 'mhinz/vim-signify'
elseif has('signs')
  " Show a git diff in the gutter and stages/reverts hunks
  Plug 'airblade/vim-gitgutter'
endif
" zoomwintab vim plugin
Plug 'troydm/zoomwintab.vim', { 'on': 'ZoomWinTabToggle' }
" Distraction-free writing in Vim
Plug 'junegunn/goyo.vim', { 'on': 'Goyo' }
" color hex codes and color names
Plug 'chrisbra/Colorizer'

" -----------------------------------------------------------------------------
" Support file types
" -----------------------------------------------------------------------------
" AdBlock
Plug 'yous/adblock-filter.vim', { 'for': 'adblockfilter' }
" Aheui
Plug 'yous/aheui.vim', { 'for': 'aheui' }
" GNU As
Plug 'Shirk/vim-gas', { 'for': 'gas' }
" LaTeX
Plug 'lervag/vimtex', { 'for': ['bib', 'tex'] }
" Markdown
Plug 'godlygeek/tabular', { 'for': 'markdown' } |
Plug 'preservim/vim-markdown', { 'for': 'markdown' }
" PHP
Plug 'vim-scripts/php.vim-html-enhanced', { 'for': ['html', 'php'] }
if v:version >= 700
  " ANSI escape sequences concealed, but highlighted as specified (conceal)
  Plug 'powerman/vim-plugin-AnsiEsc', { 'for': 'railslog' }
endif
" Rake
Plug 'tpope/vim-rake'
" RBS
Plug 'pocke/rbs.vim'
" reStructuredText
Plug 'habamax/vim-rst', { 'for': 'rst' }
" RuboCop
Plug 'ngmy/vim-rubocop', { 'on': 'RuboCop' }
" smali
Plug 'kelwin/vim-smali', { 'for': 'smali' }
" SMT-LIB
Plug 'raichoo/smt-vim', { 'for': 'smt' }
" Vader
Plug 'junegunn/vader.vim', { 'for': 'vader' }
" A solid language pack for Vim
let g:polyglot_disabled = [
      \ 'latex', 'markdown', 'rst',
      \ 'autoindent', 'sensible']
Plug 'sheerun/vim-polyglot'

" -----------------------------------------------------------------------------
" macOS
" -----------------------------------------------------------------------------
if has('mac') || has('macunix')
  " Add plist editing support to Vim
  Plug 'darfink/vim-plist'
endif

call plug#end()
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Jun 18 2024 19:01:23)
macOS version - arm64
Included patches: 1-500
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               +cmdline_hist      +ex_extra          +jumplist          +mouse_dec         +perl              +sodium            +textobjects       +wildmenu
+arabic            +cmdline_info      +extra_search      +keymap            -mouse_gpm         +persistent_undo   +sound             +textprop          +windows
+autocmd           +comments          -farsi             +lambda            -mouse_jsbterm     +popupwin          +spell             +timers            +writebackup
+autochdir         +conceal           +file_in_path      +langmap           +mouse_netterm     +postscript        +startuptime       +title             -X11
-autoservername    +cryptv            +find_in_path      +libcall           +mouse_sgr         +printer           +statusline        -toolbar           -xattr
-balloon_eval      +cscope            +float             +linebreak         -mouse_sysmouse    +profile           -sun_workshop      +user_commands     -xfontset
+balloon_eval_term +cursorbind        +folding           +lispindent        +mouse_urxvt       -python            +syntax            +vartabs           -xim
-browse            +cursorshape       -footer            +listcmds          +mouse_xterm       +python3           +tag_binary        +vertsplit         -xpm
++builtin_terms    +dialog_con        +fork()            +localmap          +multi_byte        +quickfix          -tag_old_static    +vim9script        -xsmp
+byte_offset       +diff              +gettext           +lua               +multi_lang        +reltime           -tag_any_white     +viminfo           -xterm_clipboard
+channel           +digraphs          -hangul_input      +menu              -mzscheme          +rightleft         -tcl               +virtualedit       -xterm_save
+cindent           -dnd               +iconv             +mksession         +netbeans_intg     +ruby              +termguicolors     +visual
-clientserver      -ebcdic            +insert_expand     +modify_fname      +num64             +scrollbind        +terminal          +visualextra
+clipboard         +emacs_tags        +ipv6              +mouse             +packages          +signs             +terminfo          +vreplace
+cmdline_compl     +eval              +job               -mouseshape        +path_extra        +smartindent       +termresponse      +wildignore
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "~/.config/vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/opt/homebrew/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X -DMACOS_X_DARWIN -g -O2 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang -o vim -lm -lncurses -lsodium -liconv -lintl -framework AppKit -L/opt/homebrew/opt/lua/lib -llua5.4 -mmacosx-version-min=14.2 -fstack-protector-strong -L/opt/homebrew
/opt/perl/lib/perl5/5.38/darwin-thread-multi-2level/CORE -lperl -L/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.12/lib/python3.12/config-3.12-darwin -lpython3
.12 -framework CoreFoundation -lruby.3.3 -L/opt/homebrew/Cellar/ruby/3.3.3/lib
  • Type:
    • Bug
    • Enhancement
    • Feature Request
    • Question
  • OS:
    • All/Other
    • Linux
    • macOS
    • Windows
  • Vim:
    • Terminal Vim
    • GVim
    • Neovim
@yous
Copy link
Contributor Author

yous commented Jul 3, 2024

I think this is the minimal vimrc:

let g:plug_timeout = 10
let g:plug_retries = 0

filetype off

call plug#begin()

Plug 'https://localhost/fake/repo.git'

call plug#end()

Run nc -l 443 to raise SSL timeout, then try :PlugUpdate.

@junegunn
Copy link
Owner

junegunn commented Jul 3, 2024

vim-plug/README.md

Lines 304 to 305 in d863d07

| `g:plug_timeout` | 60 | Time limit of each task in seconds (*Ruby & Python*) |
| `g:plug_retries` | 2 | Number of retries in case of timeout (*Ruby & Python*) |

Those variables are only used by the legacy Ruby/Python parallel installers. We don't enforce any timeouts when using the Vim 8+/Neovim installers.

@yous
Copy link
Contributor Author

yous commented Jul 3, 2024

I see, then is there a way to abort the ongoing :PlugUpdate, so I can retry unfinished entries with R?

@junegunn
Copy link
Owner

junegunn commented Jul 4, 2024

The ongoing processes will be aborted when you close the plug window, but we don't have a way to retry only the aborted processes afterward. Never felt that I needed it. If I had to abort the update, I can then just re-run :PlugUpdate and it doesn't take long to do the whole thing again, so it doesn't bother me that much. Does this happen to you often?

@yous
Copy link
Contributor Author

yous commented Jul 4, 2024

I also didn't have issues for years, but I think something goes weird with my internet connection to GitHub nowadays. I've been experiencing timeouts repeatedly, getting more bothered.

junegunn added a commit that referenced this issue Jul 8, 2024
If you pressed 'q' while `PlugInstall` or `PlugUpdate` was in progress,
vim-plug would immediately close its window and abort all the running
processes.

This commit enhances the 'q' so that it doesn't close the window, but
instead displays aborted tasks so that the user can press 'R' to retry
aborted/skipped tasks.

Fix #1285
junegunn added a commit that referenced this issue Jul 8, 2024
If you press 'q' while `PlugInstall` or `PlugUpdate` is in progress,
the current version of vim-plug immediately closes its window and aborts
all the running processes.

This commit enhances the 'q' map so that it doesn't close the window,
but instead displays aborted tasks so that the user can press 'R' to
retry aborted/skipped tasks.

Fix #1285
junegunn added a commit that referenced this issue Jul 8, 2024
If you press 'q' while `PlugInstall` or `PlugUpdate` is in progress,
the current version of vim-plug immediately closes its window and aborts
all the running processes.

This commit enhances the 'q' map so that it doesn't close the window,
but instead displays aborted tasks so that the user can press 'R' to
retry aborted/skipped tasks.

Fix #1285
@yous
Copy link
Contributor Author

yous commented Jul 8, 2024

Seeing #1093, maybe this is because of rate limiting as I have 60 plugins, and timeout occurs only when I'm on a shared network.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants