mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
4fb48c5654
PROBLEM ------------------------------------------------------------------------ $NVIM_LISTEN_ADDRESS has conflicting purposes as both a parameter ("the current process should listen on this address") and a descriptor ("the current process is a child of this address"). This contradiction means the presence of NVIM_LISTEN_ADDRESS is ambiguous, so child Nvim always tries to listen on its _parent's_ socket. This is the cause of lots of "Failed to start server" spam in our test/CI logs: WARN 2022-04-30… server_start:154: Failed to start server: address already in use: \\.\pipe\nvim-4480-0 WARN 2022-04-30… server_start:154: Failed to start server: address already in use: \\.\pipe\nvim-2168-0 SOLUTION ------------------------------------------------------------------------ 1. Set $NVIM to the parent v:servername, *only* in child processes. - Now the correct way to detect a "parent" Nvim is to check for $NVIM. 2. Do NOT set $NVIM_LISTEN_ADDRESS in child processes. 3. On startup if $NVIM_LISTEN_ADDRESS exists, unset it immediately after server init. 4. Open a channel to parent automatically, expose it as v:parent. Fixes #3118 Fixes #6764 Fixes #9336 Ref https://github.com/neovim/neovim/pull/8247#issuecomment-380275696 Ref #8696 |
||
---|---|---|
.. | ||
api_functions_spec.lua | ||
buf_functions_spec.lua | ||
changedtick_spec.lua | ||
container_functions_spec.lua | ||
ctx_functions_spec.lua | ||
environ_spec.lua | ||
errorlist_spec.lua | ||
eval_spec.lua | ||
executable_spec.lua | ||
execute_spec.lua | ||
exepath_spec.lua | ||
fnamemodify_spec.lua | ||
functions_spec.lua | ||
getline_spec.lua | ||
glob_spec.lua | ||
has_spec.lua | ||
hostname_spec.lua | ||
input_spec.lua | ||
json_functions_spec.lua | ||
lang_spec.lua | ||
let_spec.lua | ||
map_functions_spec.lua | ||
match_functions_spec.lua | ||
minmax_functions_spec.lua | ||
modeline_spec.lua | ||
msgpack_functions_spec.lua | ||
null_spec.lua | ||
operators_spec.lua | ||
printf_spec.lua | ||
reltime_spec.lua | ||
screenpos_spec.lua | ||
server_spec.lua | ||
setpos_spec.lua | ||
sort_spec.lua | ||
special_vars_spec.lua | ||
string_spec.lua | ||
system_spec.lua | ||
timer_spec.lua | ||
uniq_spec.lua | ||
vvar_event_spec.lua | ||
wait_spec.lua | ||
writefile_spec.lua |