LINUX.ORG.RU

youcompleteme перестал работать

 ,


0

2

Обновил libclang до 3.9.1 и внезапно обнаружил, что youcompleteme больше не работает. Подробности сообщений об ошибке, как всегда, можно только позавидовать:

POST /semantic_completion_available HTTP/1.1
Host: 127.0.0.1:36270
Content-Length: 231
x-ycm-hmac: shutHbEv/Usi+MC3rzkNTxqIuuthtFO870iPBu0YZXs=
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.9.1
Connection: keep-alive
content-type: application/json

{"file_data": {"/tmp/1.c": {"filetypes": ["c"], "contents": "struct A {\n    int field;\n};\n\nint main()\n{\n    struct A a;\n    a.\n    return 0;\n}\n"}}, "line_num": 8, "filetypes": "c", "column_num": 7, "filepath": "/tmp/1.c"}
HTTP/1.1 500 INTERNAL SERVER ERROR
Content-Length: 80
Content-Type: text/html; charset=UTF-8
Date: Tue, 14 Feb 2017 08:01:07 GMT
Server: waitress

<h1>Critical error while processing request: /semantic_completion_available</h1>

Ну и в логе

2017-02-14 11:04:39,676 - ERROR - Error while handling server response
Traceback (most recent call last):
  File "/usr/share/vim/vimfiles/autoload/../python/ycm/client/base_request.py", line 196, in HandleServerException
    yield
  File "/usr/share/vim/vimfiles/autoload/../python/ycm/client/ycmd_keepalive.py", line 50, in _ThreadMain
    BaseRequest.GetDataFromHandler( 'healthy' )
  File "/usr/share/vim/vimfiles/autoload/../python/ycm/client/base_request.py", line 74, in GetDataFromHandler
    timeout ) )
  File "/usr/share/vim/vimfiles/autoload/../python/ycm/client/base_request.py", line 163, in JsonFromFuture
    _ValidateResponseObject( response )
  File "/usr/share/vim/vimfiles/autoload/../python/ycm/client/base_request.py", line 239, in _ValidateResponseObject
    their_hmac = ToBytes( b64decode( response.headers[ _HMAC_HEADER ] ) )
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/requests/requests/structures.py", line 54, in __getitem__
    return self._store[key.lower()][1]
KeyError: u'x-ycm-hmac'
В какую сторону копать?

Судя по KeyError, разошлись протоколы клиента и сервера.

tailgunner ★★★★★ ()
Ответ на: комментарий от Gvidon

Глаза меня не обманывают? Оно что, правда работает через http?

Там сервер, который всё обрабатывает и по http общается с клиентом, да.

evilface ★★ ()
Ответ на: комментарий от Gvidon

И использует json для сериализации. Прикинь, весь твой буфер youcompleteme запихивает строковое json-поле и пуляет его по http.

kawaii_neko ★★★★ ()
Ответ на: комментарий от Gvidon

веб головного моска. необратимая стадия.

mos ★★☆☆☆ ()

В какую сторону копать?

neovim/deoplete

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.