Deoplete.nvim: Deoplete is crashing when entering insert mode

Created on 6 Feb 2018  ·  10Comments  ·  Source: Shougo/deoplete.nvim

Warning: I will close the issue without the minimal init.vim and the reproduction instructions.

Problems summary

Deoplete is crashing as soon as I enter insert mode.

Environment Information

  • deoplete version(SHA1):

  • OS: macOS 10.11.6

  • neovim/Vim version:
    NVIM v0.2.2
    Build type: Release
    LuaJIT 2.0.5
    Compilation: /Users/giraldl/local/Library/Homebrew/shims/super/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -I/tmp/neovim-20171204-32968-q3qn06/neovim-0.2.2/build/config -I/tmp/neovim-20171204-32968-q3qn06/neovim-0.2.2/src -I/Users/giraldl/local/include -I/Users/giraldl/local/include -I/Users/giraldl/local/include -I/Users/giraldl/local/include -I/Users/giraldl/local/include -I/Users/giraldl/local/include -I/Users/giraldl/local/opt/gettext/include -I/usr/include -I/tmp/neovim-20171204-32968-q3qn06/neovim-0.2.2/build/src/nvim/auto -I/tmp/neovim-20171204-32968-q3qn06/neovim-0.2.2/build/include
    Compiled by giraldl@kl-15071

Features: +acl +iconv +jemalloc +tui
See ":help feature-compile"

system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/Users/giraldl/local/Cellar/neovim/0.2.2/share/nvim"

Run :checkhealth for more info

  • :checkhealth or :CheckHealth result(neovim only):

    health#deoplete#check

deoplete.nvim

  • OK: has("nvim") was successful
  • OK: has("python3") was successful

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

" Your minimal init.vim/vimrc
set runtimepath+=~/.local/share/nvim/bundle/deoplete.nvim/
let g:python_host_prog = expand('~/local/bin/python2')
let g:python3_host_prog = substitute(g:python_host_prog, '2', '3', '')
let g:deoplete#enable_at_startup = 1

The reproduce ways from neovim/Vim starting (Required!)

  1. run "nvim -u mini.vim test.py"
  2. enter insert mode

The test.py file is a simple hello world

def main():
    print('hello world')

if __name__ == '__main__':
    main()

Generate a logfile if appropriate

  1. export NVIM_PYTHON_LOG_FILE=/tmp/log
  2. export NVIM_PYTHON_LOG_LEVEL=DEBUG
  3. nvim -u minimal.vimrc
  4. some works
  5. cat /tmp/log_{PID}

Upload the log file

The log file is attached.

nvim.log

:messages returns
"test.py" 5L, 76C
[deoplete] Traceback (most recent call last):
[deoplete] Traceback (most recent call last):
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 63, in completion_begin
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 63, in completion_begin
[deoplete] is_async, position, candidates = self.merge_results(context)
[deoplete] is_async, position, candidates = self.merge_results(context)
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 110, in merge_results
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 110, in merge_results
[deoplete] result = parent.merge_results(context)
[deoplete] result = parent.merge_results(context)
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/parent.py", line 47, in merge_results
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/parent.py", line 47, in merge_results
[deoplete] queue_id = self._put('merge_results', [context])
[deoplete] queue_id = self._put('merge_results', [context])
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/parent.py", line 88, in _put
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/parent.py", line 88, in _put
[deoplete] self._proc.write({'name': name, 'args': args, 'queue_id': queue_id})
[deoplete] self._proc.write({'name': name, 'args': args, 'queue_id': queue_id})
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/process.py", line 75, in write
[deoplete] File "/Users/giraldl/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/process.py", line 75, in write
[deoplete] self._proc.stdin.flush()
[deoplete] self._proc.stdin.flush()
[deoplete] BrokenPipeError: [Errno 32] Broken pipe
[deoplete] BrokenPipeError: [Errno 32] Broken pipe
[deoplete] Error while gathering completions. Use :messages for error details.
[deoplete] Error while gathering completions. Use :messages for error details.

invalid

Most helpful comment

let g:deoplete#num_processes = 1 was mentioned by @Shougo in a chat, and it seems to workaround it for me, for now.

All 10 comments

The child process seems crashed.
I don't know why.

deoplete version(SHA1):

What is the deoplete version?
Please upload it.

Missed that one: c5f8165245a1bd0a9a9f3d167ec855994fcd1e14

dp_main.py works well?
Please execute manually.

python3 {dp_main.path in deoplete.py} {serveraddr}

serveraddr is v:servername result in your Vim.

631 does not help.

dp_main.py does not work.

~/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete 10:15:47
☀❯echo $NVIM_LISTEN_ADDRESS [master]
/tmp/nvimsocket
~/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete 10:16:07
☀❯ps -e | rg "nvim.test" [master]
41052 ttys000 0:00.00 rg nvim.
test
40974 ttys001 0:00.07 nvim -u mini.vim test.py
~/.local/share/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete 10:16:20
☀❯python3 dp_main.py /tmp/nvimsocket [master]
Traceback (most recent call last):
File "dp_main.py", line 46, in
main(sys.argv[1])
File "dp_main.py", line 32, in main
vim = attach_vim(serveraddr)
File "dp_main.py", line 18, in attach_vim
vim = attach('socket', path=serveraddr)
File "/Users/giraldl/Library/Python/3.6/lib/python/site-packages/neovim/__init__.py", line 101, in attach
socket_session(path) if session_type == 'socket' else
File "/Users/giraldl/Library/Python/3.6/lib/python/site-packages/neovim/msgpack_rpc/__init__.py", line 32, in socket_session
return session('socket', path)
File "/Users/giraldl/Library/Python/3.6/lib/python/site-packages/neovim/msgpack_rpc/__init__.py", line 18, in session
loop = EventLoop(transport_type, args, *kwargs)
File "/Users/giraldl/Library/Python/3.6/lib/python/site-packages/neovim/msgpack_rpc/event_loop/base.py", line 88, in __init__
getattr(self, '_connect_{}'.format(transport_type))(*args)
File "/Users/giraldl/Library/Python/3.6/lib/python/site-packages/neovim/msgpack_rpc/event_loop/asyncio.py", line 87, in _connect_socket
self._loop.run_until_complete(coroutine)
File "/Users/giraldl/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base_events.py", line 467, in run_until_complete
return future.result()
File "/Users/giraldl/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/unix_events.py", line 236, in create_unix_connection
yield from self.sock_connect(sock, path)
File "/Users/giraldl/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/selector_events.py", line 450, in sock_connect
return (yield from fut)
File "/Users/giraldl/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/selector_events.py", line 455, in _sock_connect
sock.connect(address)
ConnectionRefusedError: [Errno 61] Connection refused

OK. So, the connection does not work.
It should be reported in neovim-python repository.

https://github.com/neovim/python-client

I think it does not work in your environment.

https://github.com/neovim/python-client#usage-through-the-python-repl

I think you should update neovim and neovim python-client to the latest version.

You are right, there is a ConnectionRefusedError whenever I try to use neovim.attach.
Updating neovim and python-client to HEAD did not solve.
Thanks for your help.

OK. I cannot fix the problem.

let g:deoplete#num_processes = 1 was mentioned by @Shougo in a chat, and it seems to workaround it for me, for now.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

shibumi picture shibumi  ·  4Comments

firedev picture firedev  ·  4Comments

lowski picture lowski  ·  3Comments

westlywright picture westlywright  ·  6Comments

monicao picture monicao  ·  3Comments