aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/_ftplugin/lua.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2026-10-03 12:45:57 -0400
committerGitHub <noreply@github.com>2026-10-03 12:45:57 -0400
commite77fa0a97266b3a31e470d3d5c6036f245e3a5e8 (patch)
tree1e5b10c1634ccc64adc5c8f1d3a3dc25961e7f3e /runtime/lua/vim/_ftplugin/lua.lua
parent585ffe06a9ce92113388d1e8372ba1db8c0422cb (diff)
downloadrneovim-e77fa0a97266b3a31e470d3d5c6036f245e3a5e8.tar.gz
rneovim-e77fa0a97266b3a31e470d3d5c6036f245e3a5e8.tar.bz2
rneovim-e77fa0a97266b3a31e470d3d5c6036f245e3a5e8.zip
fix(rpc): redraw parse failure silently closes channel #42220
Problem: When `unpacker_parse_redraw()` fails, it closes the unpacker without setting `unpack_error`, so `chan_close_on_err()` gets a NULL message. A pending request fails with an empty error (`RPC: (null)`). c04d0734a728 fixed the crash that followed (advancing the closed unpacker), but not the silent close itself. Repro: Self-attach (`nvim_ui_attach` on a loopback `sockconnect()` channel) closes the channel without a visible reason, either while `nvim_ui_attach` is pending or at the next redraw. Solution: Set an error msg when `unpacker_parse_redraw()` fails. Note: Self-attach fails for accidental reasons, not by design: - An incoming "redraw" notif is always parsed "as a UI client" (`handle_ui_client_redraw`), whose `grid_line` buffer is only allocated in a UI client process. A loopback channel is both ends, so it parses its own redraw stream as if it were the TUI. - Even if parsing worked, `parse_msgpack()` drops redraw events unless `ui_client_attached`, and a `sockconnect()` client has no notification callback.
Diffstat (limited to 'runtime/lua/vim/_ftplugin/lua.lua')
0 files changed, 0 insertions, 0 deletions