goneovim icon indicating copy to clipboard operation
goneovim copied to clipboard

Goneovim crashes on Ubuntu focal

Open szaffarano opened this issue 3 years ago • 6 comments

When I try to run the latest version on Ubuntu Focal I get the following error

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x24 pc=0x7f406f4a3c14]

runtime stack:
runtime.throw(0x112d6e0, 0x2a)
	runtime/panic.go:774 +0x72
runtime.sigpanic()
	runtime/signal_unix.go:378 +0x47c

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0xee0930, 0xc000557940, 0x8980f3)
	runtime/cgocall.go:128 +0x5b fp=0xc000557910 sp=0xc0005578d8 pc=0x576aab
github.com/therecipe/qt/widgets._Cfunc_QApplication_QApplication_Exec(0xc000000000)
	_cgo_gotypes.go:2533 +0x49 fp=0xc000557940 sp=0xc000557910 pc=0x7d9729
github.com/therecipe/qt/widgets.QApplication_Exec(...)
	github.com/therecipe/qt/widgets/widgets-minimal.go:2929
github.com/akiyosi/goneovim/editor.InitEditor()
	github.com/akiyosi/goneovim/editor/editor.go:262 +0x8c2 fp=0xc000557f50 sp=0xc000557940 pc=0xdca582
main.main()
	github.com/akiyosi/goneovim/cmd/goneovim/main.go:14 +0x20 fp=0xc000557f60 sp=0xc000557f50 pc=0xe55f10
runtime.main()
	runtime/proc.go:203 +0x21e fp=0xc000557fe0 sp=0xc000557f60 pc=0x5a2d5e
runtime.goexit()
	runtime/asm_amd64.s:1357 +0x1 fp=0xc000557fe8 sp=0xc000557fe0 pc=0x5cdd61

goroutine 11 [select]:
os/exec.(*Cmd).Start.func2(0xc000472000)
	os/exec/exec.go:443 +0xc4
created by os/exec.(*Cmd).Start
	os/exec/exec.go:442 +0x6a6

goroutine 68 [chan receive]:
github.com/akiyosi/goneovim/editor.InitEditor.func2(0xc000231200)
	github.com/akiyosi/goneovim/editor/editor.go:253 +0x3b
created by github.com/akiyosi/goneovim/editor.InitEditor
	github.com/akiyosi/goneovim/editor/editor.go:252 +0x8a4

goroutine 12 [IO wait]:
internal/poll.runtime_pollWait(0x7f4098916da8, 0x72, 0xffffffffffffffff)
	runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc000376138, 0x72, 0x1001, 0x1000, 0xffffffffffffffff)
	internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000376120, 0xc000369000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	internal/poll/fd_unix.go:169 +0x1cf
os.(*File).read(...)
	os/file_unix.go:259
os.(*File).Read(0xc0005746d8, 0xc000369000, 0x1000, 0x1000, 0x9c421b, 0xc0002ac0c0, 0x0)
	os/file.go:116 +0x71
bufio.(*Reader).fill(0xc000376240)
	bufio/bufio.go:100 +0x103
bufio.(*Reader).ReadByte(0xc000376240, 0x9c3ed4, 0xc0001aca90, 0xc0005d3e00)
	bufio/bufio.go:252 +0x39
github.com/neovim/go-client/msgpack.(*Decoder).Unpack(0xc0003ae000, 0x3, 0x0)
	github.com/neovim/go-client/msgpack/unpack.go:154 +0x55
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve(0xc0001aca90, 0x0, 0x0)
	github.com/neovim/go-client/msgpack/rpc/endpoint.go:373 +0xff
github.com/neovim/go-client/nvim.(*Nvim).Serve(0xc00048c3f0, 0x0, 0x0)
	github.com/neovim/go-client/nvim/nvim.go:53 +0x81
github.com/neovim/go-client/nvim.(*Nvim).startServe.func1(0xc00048c3f0)
	github.com/neovim/go-client/nvim/nvim.go:59 +0x2b
created by github.com/neovim/go-client/nvim.(*Nvim).startServe
	github.com/neovim/go-client/nvim/nvim.go:58 +0x6c

goroutine 36 [sync.Cond.Wait]:
runtime.goparkunlock(...)
	runtime/proc.go:310
sync.runtime_notifyListWait(0xc0002ac0d0, 0xe)
	runtime/sema.go:510 +0xf8
sync.(*Cond).Wait(0xc0002ac0c0)
	sync/cond.go:56 +0x9d
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).dequeueNotifications(0xc0001aca90, 0x1, 0x1, 0x0)
	github.com/neovim/go-client/msgpack/rpc/endpoint.go:633 +0x5d
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).runNotifications(0xc0001aca90)
	github.com/neovim/go-client/msgpack/rpc/endpoint.go:645 +0x20a
created by github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve
	github.com/neovim/go-client/msgpack/rpc/endpoint.go:370 +0xea

goroutine 13 [semacquire]:
sync.runtime_SemacquireMutex(0xc00048c41c, 0x0, 0x1)
	runtime/sema.go:71 +0x47
sync.(*Mutex).lockSlow(0xc00048c418)
	sync/mutex.go:138 +0xfc
sync.(*Mutex).Lock(...)
	sync/mutex.go:81
github.com/neovim/go-client/nvim.(*Nvim).Serve(0xc00048c3f0, 0x0, 0x0)
	github.com/neovim/go-client/nvim/nvim.go:51 +0xc3
github.com/akiyosi/goneovim/editor.(*Workspace).startNvim.func3(0xc00027c000)
	github.com/akiyosi/goneovim/editor/workspace.go:393 +0x36
created by github.com/akiyosi/goneovim/editor.(*Workspace).startNvim
	github.com/akiyosi/goneovim/editor/workspace.go:392 +0x397

Could it be caused because I'm using QT 5.12.8+dfsg-0ubuntu1?

If I run ldd on the lib directory, the following libraries aren't linked:

        libicuuc.so.56 => not found
        libicudata.so.56 => not found
        libicudata.so.56 => not found

Because Ubuntu has a newer version.

Same error with Goneovim 0.4.8.

Thanks.

szaffarano avatar Oct 24 '20 22:10 szaffarano

Hi :) Thanks for this issue report. I'm looking into this issue.

Could it be caused because I'm using QT 5.12.8+dfsg-0ubuntu1?

If I run ldd on the lib directory, the following libraries aren't linked:

    libicuuc.so.56 => not found
    libicudata.so.56 => not found
    libicudata.so.56 => not found

I don't think the above is a direct cause of the problem. In fact, it's the same situation in my archlinux environment, but I haven't had any problems.

What nvim version are you using?

akiyosi avatar Oct 25 '20 03:10 akiyosi

Hi @akiyosi I'm using nvim 0.4.3:

⟩ nvim --version
NVIM v0.4.4
Build type: Release
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -g -O2 -fdebug-prefix-map=/build/neovim-aKIhK1/neovim-0.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=1 -DDISABLE_LOG -Wdate-time -D_FORTIFY_SOURCE=1 -O2 -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/build/neovim-aKIhK1/neovim-0.4.4/build/config -I/build/neovim-aKIhK1/neovim-0.4.4/src -I/usr/include -I/usr/include/lua5.1 -I/build/neovim-aKIhK1/neovim-0.4.4/build/src/nvim/auto -I/build/neovim-aKIhK1/neovim-0.4.4/build/include
Compiled by [email protected]

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

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

szaffarano avatar Oct 25 '20 10:10 szaffarano

@szaffarano Thanks for quick reply. Umm... One possibility is that any of the plugins you are loading could be the cause of the problem. Could you try starting it up with the following command?

/path/to/goneovim -u NONE

akiyosi avatar Oct 25 '20 10:10 akiyosi

Hi @akiyosi I tried starting nvim up with -u NONE flag and I got the same error.

szaffarano avatar Oct 25 '20 16:10 szaffarano

After start goneovim with strace I found

ioctl(9, DRM_IOCTL_I915_GEM_MMAP, 0x7ffef042cfa0) = -1 ENOMEM (Cannot allocate memory)
ioctl(9, DRM_IOCTL_I915_GEM_MMAP_GTT, 0x7ffef042cf20) = 0
mmap(NULL, 16384, PROT_READ|PROT_WRITE, MAP_SHARED, 9, 0x100fd2000) = -1 ENOMEM (Cannot allocate memory)

And searching about this allocation error I found here a workaround:

$ export MESA_LOADER_DRIVER_OVERRIDE=i965
$ /path/to/goneovim

It seems that it works fine now.

szaffarano avatar Oct 25 '20 17:10 szaffarano

@szaffarano Thank you for your report. This workaround is very good information for the project. I will keep this for people in the same event.

akiyosi avatar Oct 26 '20 13:10 akiyosi