Skip to content

Fedora 36's neovim build and commit e1748ae: git.lua:302: atttempt to yield across C-call boundary #624

@runiq

Description

@runiq

Description

Commit e1748ae results in an error message with Fedora 36's build of Neovim.

In chat, @lewis6991 mentioned that this is because of an issue in the version of Luajit that Fedora uses, which is the original 2.1.0-beta3 release (compare checksums of LuaJIT-2.1.0-beta3.tar.gz here and here). (They do add a giant patch, but I'm not sure what that amounts to.)

He also asked about the values of coroutine.running() right before the offending line and in a non-async context (i.e. from the :lua command).

Neovim version

NVIM v0.7.2 with Luajit 2.1.0-beta3

Operating system and version

Fedora 36

Expected behavior

  • No error message
  • Output of coroutine.running(): nil

Actual behavior

Error message:

Error detected while processing /var/home/ajaam/play/min.lua:
E5113: Error while calling lua chunk: .../nvim/site/pack/test/start/gitsigns/lua/gitsigns/git.lua:302: attempt to yield across C-call boundary
stack traceback:
        [C]: in function 'command'
        .../nvim/site/pack/test/start/gitsigns/lua/gitsigns/git.lua:302: in function 'set_version'
        /tmp/nvim/site/pack/test/start/gitsigns/lua/gitsigns.lua:472: in function 'setup'
        /var/home/ajaam/play/min.lua:14: in main chunk

Output of coroutine.running():

thread: 0x7f45784fa380 true

Minimal config

vim.o.packpath = '/tmp/nvim/site'

local plugins = {
  gitsigns = 'https://github.com/lewis6991/gitsigns.nvim',
}

for name, url in pairs(plugins) do
  local install_path = '/tmp/nvim/site/pack/test/start/'..name
  if vim.fn.isdirectory(install_path) == 0 then
    vim.fn.system { 'git', 'clone', '--depth=1', url, install_path }
  end
end

require('gitsigns').setup{
  debug_mode = true, -- You must add this to enable debug messages
}

Steps to reproduce

nvim --clean -u minimal.lua '+lua print(coroutine.running())'

Gitsigns debug messages

Probably not relevant, but here you go.
signs.init: Using vimfn signs
fn: Deriving GitSignsAdd from DiffAdd
fn: Deriving GitSignsChange from DiffChange
fn: Deriving GitSignsDelete from DiffDelete
fn: Deriving GitSignsAddNr from GitSignsAdd
fn: Deriving GitSignsChangeNr from GitSignsChange
fn: Deriving GitSignsDeleteNr from GitSignsDelete
fn: Deriving GitSignsAddLn from DiffAdd
fn: Deriving GitSignsChangeLn from DiffChange
fn: Deriving GitSignsAddPreview from DiffAdd
fn: Deriving GitSignsDeletePreview from DiffDelete
fn: Deriving GitSignsCurrentLineBlame from NonText
fn: Deriving GitSignsAddInline from TermCursor
fn: Deriving GitSignsDeleteInline from TermCursor
fn: Deriving GitSignsChangeInline from TermCursor
fn: Deriving GitSignsAddLnInline from GitSignsAddInline
fn: Deriving GitSignsChangeLnInline from GitSignsChangeInline
fn: Deriving GitSignsDeleteLnInline from GitSignsDeleteInline
fn: Deriving GitSignsAddLnVirtLn from GitSignsAddLn
fn: Deriving GitSignsChangeVirtLn from GitSignsChangeLn
fn: Deriving GitSignsDeleteVirtLn from DiffDelete
fn: Deriving GitSignsAddLnVirtLnInLine from GitSignsAddLnInline
fn: Deriving GitSignsChangeVirtLnInLine from GitSignsChangeLnInline
fn: Deriving GitSignsDeleteVirtLnInLine from GitSignsDeleteLnInline

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions