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

deoplete-go freezes forever sometimes #98

Open
clee opened this issue May 5, 2017 · 12 comments
Open

deoplete-go freezes forever sometimes #98

clee opened this issue May 5, 2017 · 12 comments

Comments

@clee
Copy link

clee commented May 5, 2017

Using gocode revision 843b7a63f621bb441274849d58671870adf1a5ce and deoplete-go revision 7990da5c8c89a47e0ccd3b7e60a836a6f115641a, when I edit JSON metadata, neovim completely locks up attempting to get autocomplete from gocode through deoplete-go.

I can reproduce this on multiple machines by inserting the cursor after the e in json:"name" inside https://github.com/clee/channon/blob/master/types.go

@zchee
Copy link
Member

zchee commented May 24, 2017

@clee Thanks issue and sorry for late reply.
I'll check it later, but are you still reproduce this problem? (create the issue at 19 days ago. sorry, just in case)

@clee
Copy link
Author

clee commented May 24, 2017

Not reliably; it seems to happen more when/if I leave neovim running for a long time (like, 24+ hours). Having any open neovim sessions with Go files, once the freezing starts, makes it impossible to enter insert mode in any of them. Exiting all neovim processes and re-launching neovim makes things work again for a while.

@zchee
Copy link
Member

zchee commented May 24, 2017

@clee Thanks reply. got it.
As a premise, gocode will gocode hang very rarely. I do not know the cause.
So, when your situation, gocode also hanged? actually exec gocode set but not response.
And, sorry I'm not at good English... Your said situation is freeze deoplete-go only? or also neovim?

@akarki15
Copy link

akarki15 commented Jun 6, 2017

Not sure we have the same problem but re-installing gocode seemed to fix my deoplete freezing forever issue. I ran :GoUpdateBinaries from vim (with a go file open s.t. I had the command available)

@Shougo
Copy link
Collaborator

Shougo commented Jun 7, 2017

@clee Please try :GoUpdateBinaries command.

@Shougo
Copy link
Collaborator

Shougo commented Aug 25, 2017

@clee Still reproduce-able?

@clee
Copy link
Author

clee commented Aug 25, 2017

Still happens occasionally. Seems to be more frequent when I put an instance of neovim with a Go file open into the background (with Ctrl+Z).

@Shougo
Copy link
Collaborator

Shougo commented Aug 25, 2017

@clee Please try :GoUpdateBinaries command.
Please create the reproduce ways from neovim starting.
I will test it.

@clee
Copy link
Author

clee commented Aug 26, 2017

@Shougo I run :GoUpdateBinaries (and :PlugUpdate) every day :)

I'll see if I can figure out how to reproduce this reliably and report back with steps if I can.

Update: Following these steps, it happened on the first try, but not again after trying it three more times.

  1. Change to a directory with multiple go files.
  2. Use nvim to open one of the existing go files, and add a blank line. Exit insert mode. Hit Ctrl+Z to background.
  3. Use nvim to open a different existing go file.

After step 3, for me, the nvim process with the second file open was locked completely, and I could not move the cursor or enter insert mode. Opening more nvim processes on further go files resulted in all of the new processes being locked. But this does seem to be pretty difficult to reproduce reliably. I'll keep testing to see if I can figure out any other conditions that might make it more likely.

@Shougo
Copy link
Collaborator

Shougo commented Aug 27, 2017

It may be neovim or neovim-python problem(or feature).

We cannot fix the problem.
Please create the new issue in them.

@romeovs
Copy link

romeovs commented Sep 28, 2017

I also frequently have this problem. Pressing ctrl-C a couple of times unfreezes it, but disables deplete.

This is the stack trace that is printed from calling :messages:

[deoplete] Traceback (most recent call last):                                                                                                                             
[deoplete] Traceback (most recent call last):
[deoplete]   File "/Users/romeo/.config/vim/vimfiles/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 90, in gather_results
[deoplete]   File "/Users/romeo/.config/vim/vimfiles/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 90, in gather_results
[deoplete]     charpos = source.get_complete_position(ctx)
[deoplete]     charpos = source.get_complete_position(ctx)
[deoplete]   File "/Users/romeo/.config/vim/vimfiles/bundle/deoplete.nvim/rplugin/python3/deoplete/source/omni.py", line 36, in get_complete_position
[deoplete]   File "/Users/romeo/.config/vim/vimfiles/bundle/deoplete.nvim/rplugin/python3/deoplete/source/omni.py", line 36, in get_complete_position
[deoplete]     pos = self._get_complete_position(context, current_ft, filetype)
[deoplete]     pos = self._get_complete_position(context, current_ft, filetype)
[deoplete]   File "/Users/romeo/.config/vim/vimfiles/bundle/deoplete.nvim/rplugin/python3/deoplete/source/omni.py", line 51, in _get_complete_position
[deoplete]   File "/Users/romeo/.config/vim/vimfiles/bundle/deoplete.nvim/rplugin/python3/deoplete/source/omni.py", line 51, in _get_complete_position
[deoplete]     'deoplete#util#exists_omnifunc', omnifunc):
[deoplete]     'deoplete#util#exists_omnifunc', omnifunc):
[deoplete]   File "/usr/local/lib/python3.6/site-packages/neovim/api/nvim.py", line 230, in call
[deoplete]   File "/usr/local/lib/python3.6/site-packages/neovim/api/nvim.py", line 230, in call
[deoplete]     return self.request('nvim_call_function', name, args, **kwargs)
[deoplete]     return self.request('nvim_call_function', name, args, **kwargs)
[deoplete]   File "/usr/local/lib/python3.6/site-packages/neovim/api/nvim.py", line 131, in request
[deoplete]   File "/usr/local/lib/python3.6/site-packages/neovim/api/nvim.py", line 131, in request
[deoplete]     res = self._session.request(name, *args, **kwargs)
[deoplete]     res = self._session.request(name, *args, **kwargs)
[deoplete]   File "/usr/local/lib/python3.6/site-packages/neovim/msgpack_rpc/session.py", line 98, in request
[deoplete]   File "/usr/local/lib/python3.6/site-packages/neovim/msgpack_rpc/session.py", line 98, in request
[deoplete]     raise self.error_wrapper(err)
[deoplete]     raise self.error_wrapper(err)
[deoplete] neovim.api.nvim.NvimError: b'Keyboard interrupt'
[deoplete] neovim.api.nvim.NvimError: b'Keyboard interrupt'
[deoplete] Could not get completions from: omni.  Use :messages for error details.

@Shougo
Copy link
Collaborator

Shougo commented Sep 28, 2017

@romeovs Please read this. It is not deoplete and deoplete-go problem.
Shougo/deoplete.nvim#546

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

No branches or pull requests

5 participants