Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when maximizing window #528

Open
shiena opened this issue Mar 14, 2024 · 9 comments
Open

Crash when maximizing window #528

shiena opened this issue Mar 14, 2024 · 9 comments

Comments

@shiena
Copy link
Contributor

shiena commented Mar 14, 2024

Environment

  • macOS Sonoma 14.4
  • GonvimVersion: v0.6.8-30-g6f5e787
  • Platform: arm64
  • neovim: 0.9.5

Reproduction steps

  1. Add DesktopNotifications = true to settings.toml
  2. Execute GonvimMaximize
goneovim --cmd GonvimMaximize -- -u NONE
signal 16 received but handler not on signal stack
mp.gsignal stack [0x14000004000 0x1400000c000], mp.g0 stack [0x16ef584e8 0x16f753520], sp=0x14000186628
fatal error: non-Go code set up signal handler without SA_ONSTACK flag

runtime stack:
runtime.throw({0x1018d585d?, 0x300000006?})
	runtime/panic.go:1077 +0x40 fp=0x14000186570 sp=0x14000186540 pc=0x1006ec570
runtime.sigNotOnStack(0x10, 0x14000186600?, 0x102100b00)
	runtime/signal_unix.go:1045 +0x118 fp=0x140001865b0 sp=0x14000186570 pc=0x100703a28
runtime.adjustSignalStack(0x10, 0x102100b00, 0x14000186658)
	runtime/signal_unix.go:592 +0x25c fp=0x14000186620 sp=0x140001865b0 pc=0x100702adc
runtime.sigtrampgo(0x10, 0x140001867c0, 0x14000186828)
	runtime/signal_unix.go:480 +0x8c fp=0x140001866a0 sp=0x14000186620 pc=0x10070261c
runtime.sigtrampgo(0x10, 0x140001867c0, 0x14000186828)
	<autogenerated>:1 +0x1c fp=0x140001866d0 sp=0x140001866a0 pc=0x1007215ac
runtime.sigtramp()
	runtime/sys_darwin_arm64.s:227 +0x4c fp=0x14000186790 sp=0x140001866d0 pc=0x10072067c

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400005afe0 sp=0x1400005afe0 pc=0x10071f674

goroutine 1 [running, locked to thread]:
	goroutine running on other thread; stack unavailable

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000046f90 sp=0x14000046f70 pc=0x1006ef2c8
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.forcegchelper()
	runtime/proc.go:322 +0xb8 fp=0x14000046fd0 sp=0x14000046f90 pc=0x1006ef158
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000046fd0 sp=0x14000046fd0 pc=0x10071f674
created by runtime.init.6 in goroutine 1
	runtime/proc.go:310 +0x24

goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000047760 sp=0x14000047740 pc=0x1006ef2c8
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.bgsweep(0x0?)
	runtime/mgcsweep.go:280 +0xa0 fp=0x140000477b0 sp=0x14000047760 pc=0x1006dbc10
runtime.gcenable.func1()
	runtime/mgc.go:200 +0x28 fp=0x140000477d0 sp=0x140000477b0 pc=0x1006d0708
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000477d0 sp=0x140000477d0 pc=0x10071f674
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:200 +0x6c

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x14000070000?, 0x1019516b8?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000047f50 sp=0x14000047f30 pc=0x1006ef2c8
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.(*scavengerState).park(0x102100520)
	runtime/mgcscavenge.go:425 +0x5c fp=0x14000047f80 sp=0x14000047f50 pc=0x1006d94bc
runtime.bgscavenge(0x0?)
	runtime/mgcscavenge.go:658 +0xac fp=0x14000047fb0 sp=0x14000047f80 pc=0x1006d9a7c
runtime.gcenable.func2()
	runtime/mgc.go:201 +0x28 fp=0x14000047fd0 sp=0x14000047fb0 pc=0x1006d06a8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000047fd0 sp=0x14000047fd0 pc=0x10071f674
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:201 +0xac

goroutine 5 [finalizer wait]:
runtime.gopark(0x140000465a8?, 0x10071a9e4?, 0x1?, 0x65?, 0x100735f04?)
	runtime/proc.go:398 +0xc8 fp=0x14000046580 sp=0x14000046560 pc=0x1006ef2c8
runtime.runfinq()
	runtime/mfinal.go:193 +0x108 fp=0x140000467d0 sp=0x14000046580 pc=0x1006cf7b8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000467d0 sp=0x140000467d0 pc=0x10071f674
created by runtime.createfing in goroutine 1
	runtime/mfinal.go:163 +0x80

goroutine 10 [sleep]:
runtime.gopark(0x8a46d2b20ff?, 0x140000235b0?, 0x0?, 0x0?, 0x1400000e300?)
	runtime/proc.go:398 +0xc8 fp=0x14000264f70 sp=0x14000264f50 pc=0x1006ef2c8
time.Sleep(0x1dcd6500)
	runtime/time.go:195 +0x10c fp=0x14000264fb0 sp=0x14000264f70 pc=0x10071c1bc
github.com/akiyosi/goneovim/editor.(*Workspace).initLazyLoadUI.func3()
	github.com/akiyosi/goneovim/editor/workspace.go:292 +0x3c fp=0x14000264fd0 sp=0x14000264fb0 pc=0x1009012dc
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000264fd0 sp=0x14000264fd0 pc=0x10071f674
created by github.com/akiyosi/goneovim/editor.(*Workspace).initLazyLoadUI in goroutine 34
	github.com/akiyosi/goneovim/editor/workspace.go:290 +0x100

goroutine 67 [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000049f30 sp=0x14000049f10 pc=0x1006ef2c8
runtime.gcBgMarkWorker()
	runtime/mgc.go:1295 +0xd8 fp=0x14000049fd0 sp=0x14000049f30 pc=0x1006d2368
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000049fd0 sp=0x14000049fd0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 18 [select]:
runtime.gopark(0x14000048768?, 0x2?, 0x0?, 0x0?, 0x140000486e4?)
	runtime/proc.go:398 +0xc8 fp=0x14000212d60 sp=0x14000212d40 pc=0x1006ef2c8
runtime.selectgo(0x14000212f68, 0x140000486e0, 0x0?, 0x1, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000212e70 sp=0x14000212d60 pc=0x1006ffa18
os/exec.(*Cmd).watchCtx(0x14000098000, 0x140000a2060)
	os/exec/exec.go:757 +0x7c fp=0x14000212fb0 sp=0x14000212e70 pc=0x10078ba8c
os/exec.(*Cmd).Start.func4()
	os/exec/exec.go:743 +0x2c fp=0x14000212fd0 sp=0x14000212fb0 pc=0x10078b76c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000212fd0 sp=0x14000212fd0 pc=0x10071f674
created by os/exec.(*Cmd).Start in goroutine 6
	os/exec/exec.go:743 +0x788

goroutine 19 [IO wait]:
runtime.gopark(0xffffffffffffffff?, 0xffffffffffffffff?, 0x23?, 0x0?, 0x100750fb0?)
	runtime/proc.go:398 +0xc8 fp=0x14000056c40 sp=0x14000056c20 pc=0x1006ef2c8
runtime.netpollblock(0x0?, 0x0?, 0x0?)
	runtime/netpoll.go:564 +0x158 fp=0x14000056c80 sp=0x14000056c40 pc=0x1006e8b08
internal/poll.runtime_pollWait(0x14c4c27f8, 0x72)
	runtime/netpoll.go:343 +0xa0 fp=0x14000056cb0 sp=0x14000056c80 pc=0x100719930
internal/poll.(*pollDesc).wait(0x1400009e0c0?, 0x140000bb000?, 0x1)
	internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x14000056ce0 sp=0x14000056cb0 pc=0x1007649d8
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0x1400009e0c0, {0x140000bb000, 0x1000, 0x1000})
	internal/poll/fd_unix.go:164 +0x200 fp=0x14000056d80 sp=0x14000056ce0 pc=0x100765490
os.(*File).read(...)
	os/file_posix.go:29
os.(*File).Read(0x1400008e018, {0x140000bb000?, 0x38?, 0x101d94420?})
	os/file.go:118 +0x70 fp=0x14000056dc0 sp=0x14000056d80 pc=0x100768950
bufio.(*Reader).fill(0x1400009e1e0)
	bufio/bufio.go:113 +0xf8 fp=0x14000056e00 sp=0x14000056dc0 pc=0x100830d48
bufio.(*Reader).ReadByte(0x1400009e1e0)
	bufio/bufio.go:272 +0x2c fp=0x14000056e20 sp=0x14000056e00 pc=0x10083151c
github.com/neovim/go-client/msgpack.(*Decoder).Unpack(0x140000bc050)
	github.com/neovim/[email protected]/msgpack/unpack.go:164 +0x30 fp=0x14000056ea0 sp=0x14000056e20 pc=0x100882eb0
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve(0x1400009c0d0)
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:195 +0xf8 fp=0x14000056f30 sp=0x14000056ea0 pc=0x100885258
github.com/neovim/go-client/nvim.(*Nvim).Serve(0x0?)
	github.com/neovim/[email protected]/nvim/nvim.go:50 +0xc0 fp=0x14000056f80 sp=0x14000056f30 pc=0x1008b44d0
github.com/akiyosi/goneovim/editor.startNvim.func1()
	github.com/akiyosi/goneovim/editor/nvim.go:122 +0x2c fp=0x14000056fd0 sp=0x14000056f80 pc=0x1008d853c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000056fd0 sp=0x14000056fd0 pc=0x10071f674
created by github.com/akiyosi/goneovim/editor.startNvim in goroutine 6
	github.com/akiyosi/goneovim/editor/nvim.go:121 +0x504

goroutine 20 [sync.Cond.Wait]:
runtime.gopark(0x0?, 0x0?, 0xe8?, 0xde?, 0x100888a9c?)
	runtime/proc.go:398 +0xc8 fp=0x14000217e50 sp=0x14000217e30 pc=0x1006ef2c8
runtime.goparkunlock(...)
	runtime/proc.go:404
sync.runtime_notifyListWait(0x140000a81d0, 0x8)
	runtime/sema.go:527 +0x154 fp=0x14000217ea0 sp=0x14000217e50 pc=0x10071b6b4
sync.(*Cond).Wait(0x140000a81c0)
	sync/cond.go:70 +0xcc fp=0x14000217ee0 sp=0x14000217ea0 pc=0x100732b4c
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).dequeueNotifications(0x1400009c0d0)
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:659 +0xa0 fp=0x14000217f30 sp=0x14000217ee0 pc=0x1008885d0
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).runNotifications(0x1400009c0d0)
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:671 +0x28 fp=0x14000217fb0 sp=0x14000217f30 pc=0x1008886b8
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve.func2()
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:192 +0x28 fp=0x14000217fd0 sp=0x14000217fb0 pc=0x1008854b8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000217fd0 sp=0x14000217fd0 pc=0x10071f674
created by github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve in goroutine 19
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:192 +0xec

goroutine 52 [GC worker (idle)]:
runtime.gopark(0x1400009c0d0?, 0x0?, 0x0?, 0x0?, 0x10071f674?)
	runtime/proc.go:398 +0xc8 fp=0x14000265f30 sp=0x14000265f10 pc=0x1006ef2c8
runtime.gcBgMarkWorker()
	runtime/mgc.go:1295 +0xd8 fp=0x14000265fd0 sp=0x14000265f30 pc=0x1006d2368
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000265fd0 sp=0x14000265fd0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 66 [GC worker (idle)]:
runtime.gopark(0x1400009c0d0?, 0x0?, 0x0?, 0x0?, 0x10071f674?)
	runtime/proc.go:398 +0xc8 fp=0x14000049730 sp=0x14000049710 pc=0x1006ef2c8
runtime.gcBgMarkWorker()
	runtime/mgc.go:1295 +0xd8 fp=0x140000497d0 sp=0x14000049730 pc=0x1006d2368
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000497d0 sp=0x140000497d0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 35 [sleep]:
runtime.gopark(0x8a48525529a?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000264740 sp=0x14000264720 pc=0x1006ef2c8
time.Sleep(0x5f5e100)
	runtime/time.go:195 +0x10c fp=0x14000264780 sp=0x14000264740 pc=0x10071c1bc
github.com/akiyosi/goneovim/editor.(*Editor).toEmmitGeometrySignal(0x14000136000)
	github.com/akiyosi/goneovim/editor/editor.go:675 +0x28 fp=0x140002647b0 sp=0x14000264780 pc=0x1008c7e88
github.com/akiyosi/goneovim/editor.(*Editor).connectAppSignals.func5()
	github.com/akiyosi/goneovim/editor/editor.go:639 +0x28 fp=0x140002647d0 sp=0x140002647b0 pc=0x1008c7c28
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140002647d0 sp=0x140002647d0 pc=0x10071f674
created by github.com/akiyosi/goneovim/editor.(*Editor).connectAppSignals in goroutine 1
	github.com/akiyosi/goneovim/editor/editor.go:639 +0x100

goroutine 68 [GC mark termination]:
runtime.systemstack_switch()
	runtime/asm_arm64.s:200 +0x8 fp=0x140002606d0 sp=0x140002606c0 pc=0x10071d048
runtime.gcMarkDone()
	runtime/mgc.go:830 +0x108 fp=0x14000260730 sp=0x140002606d0 pc=0x1006d1368
runtime.gcBgMarkWorker()
	runtime/mgc.go:1427 +0x38c fp=0x140002607d0 sp=0x14000260730 pc=0x1006d261c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140002607d0 sp=0x140002607d0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 37 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x140002656c0 sp=0x140002656a0 pc=0x1006ef2c8
runtime.chanrecv(0x1400007c0c0, 0x140002657a0, 0x1)
	runtime/chan.go:583 +0x414 fp=0x14000265740 sp=0x140002656c0 pc=0x1006bdbf4
runtime.chanrecv1(0x0?, 0x0?)
	runtime/chan.go:442 +0x14 fp=0x14000265770 sp=0x14000265740 pc=0x1006bd7d4
github.com/akiyosi/goneovim/editor.(*Editor).exitEditor(0x14000136000, 0x14000022450)
	github.com/akiyosi/goneovim/editor/editor.go:344 +0x34 fp=0x140002657b0 sp=0x14000265770 pc=0x1008c5fc4
github.com/akiyosi/goneovim/editor.InitEditor.func2()
	github.com/akiyosi/goneovim/editor/editor.go:318 +0x2c fp=0x140002657d0 sp=0x140002657b0 pc=0x1008c5c8c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140002657d0 sp=0x140002657d0 pc=0x10071f674
created by github.com/akiyosi/goneovim/editor.InitEditor in goroutine 1
	github.com/akiyosi/goneovim/editor/editor.go:318 +0x8a4

goroutine 16 [GC worker (idle)]:
runtime.gopark(0x0?, 0x10071f674?, 0xc0?, 0xc3?, 0x1018cba0d?)
	runtime/proc.go:398 +0xc8 fp=0x14000048f30 sp=0x14000048f10 pc=0x1006ef2c8
runtime.gcBgMarkWorker()
	runtime/mgc.go:1295 +0xd8 fp=0x14000048fd0 sp=0x14000048f30 pc=0x1006d2368
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000048fd0 sp=0x14000048fd0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 53 [GC worker (idle)]:
runtime.gopark(0x10213c420?, 0x1?, 0xa3?, 0xca?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000042f30 sp=0x14000042f10 pc=0x1006ef2c8
runtime.gcBgMarkWorker()
	runtime/mgc.go:1295 +0xd8 fp=0x14000042fd0 sp=0x14000042f30 pc=0x1006d2368
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000042fd0 sp=0x14000042fd0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 69 [semacquire]:
runtime.gopark(0x102109760?, 0x14000260ee8?, 0xe0?, 0xe1?, 0x1400004cd80?)
	runtime/proc.go:398 +0xc8 fp=0x14000260e80 sp=0x14000260e60 pc=0x1006ef2c8
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.semacquire1(0x1021009fc, 0xf4?, 0x0, 0x0, 0x28?)
	runtime/sema.go:160 +0x208 fp=0x14000260ed0 sp=0x14000260e80 pc=0x100700848
runtime.semacquire(...)
	runtime/sema.go:111
runtime.gcMarkDone()
	runtime/mgc.go:810 +0x38 fp=0x14000260f30 sp=0x14000260ed0 pc=0x1006d1298
runtime.gcBgMarkWorker()
	runtime/mgc.go:1427 +0x38c fp=0x14000260fd0 sp=0x14000260f30 pc=0x1006d261c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000260fd0 sp=0x14000260fd0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

goroutine 54 [GC worker (idle)]:
runtime.gopark(0x8a486196d29?, 0x1?, 0x6?, 0xed?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000042730 sp=0x14000042710 pc=0x1006ef2c8
runtime.gcBgMarkWorker()
	runtime/mgc.go:1295 +0xd8 fp=0x140000427d0 sp=0x14000042730 pc=0x1006d2368
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000427d0 sp=0x140000427d0 pc=0x10071f674
created by runtime.gcBgMarkStartWorkers in goroutine 1
	runtime/mgc.go:1219 +0x28

Note: not reproducible x86_64 version with Rosetta2

@akiyosi
Copy link
Owner

akiyosi commented Mar 16, 2024

@shiena
Hi :D
Hmmm, I have not yet been able to reproduce this on my M1 Mac.
Is it reproducible in your environment?
Also, are you using any other Apps/Tools on the OS that involve window controls?

@shiena
Copy link
Contributor Author

shiena commented Mar 16, 2024

@akiyosi
Crash when enabling stage manager. There was no problem with Stage Manager being disabled.

@shiena
Copy link
Contributor Author

shiena commented Mar 16, 2024

Additionally, I found that enabling DesktopNotifications and Stage Manager sometimes causes a crash on startup.

crash log
signal 16 received but handler not on signal stack
mp.gsignal stack [0x14000004000 0x1400000c000], mp.g0 stack [0x16d4f84e8 0x16dcf3520], sp=0x14000185f18
fatal error: non-Go code set up signal handler without SA_ONSTACK flag

runtime stack:
runtime.throw({0x10333585d?, 0x300000006?})
	runtime/panic.go:1077 +0x40 fp=0x14000185e60 sp=0x14000185e30 pc=0x10214c4b0
runtime.sigNotOnStack(0x10, 0x14000185ef0?, 0x103b60b00)
	runtime/signal_unix.go:1045 +0x118 fp=0x14000185ea0 sp=0x14000185e60 pc=0x102163968
runtime.adjustSignalStack(0x10, 0x103b60b00, 0x14000185f48)
	runtime/signal_unix.go:592 +0x25c fp=0x14000185f10 sp=0x14000185ea0 pc=0x102162a1c
runtime.sigtrampgo(0x10, 0x140001860b0, 0x14000186118)
	runtime/signal_unix.go:480 +0x8c fp=0x14000185f90 sp=0x14000185f10 pc=0x10216255c
runtime.sigtrampgo(0x10, 0x140001860b0, 0x14000186118)
	<autogenerated>:1 +0x1c fp=0x14000185fc0 sp=0x14000185f90 pc=0x1021814ec
runtime.sigtramp()
	runtime/sys_darwin_arm64.s:227 +0x4c fp=0x14000186080 sp=0x14000185fc0 pc=0x1021805bc

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x1400005afe0 sp=0x1400005afe0 pc=0x10217f5b4

goroutine 1 [running, locked to thread]:
	goroutine running on other thread; stack unavailable

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000046f90 sp=0x14000046f70 pc=0x10214f208
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.forcegchelper()
	runtime/proc.go:322 +0xb8 fp=0x14000046fd0 sp=0x14000046f90 pc=0x10214f098
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000046fd0 sp=0x14000046fd0 pc=0x10217f5b4
created by runtime.init.6 in goroutine 1
	runtime/proc.go:310 +0x24

goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x14000047760 sp=0x14000047740 pc=0x10214f208
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.bgsweep(0x0?)
	runtime/mgcsweep.go:280 +0xa0 fp=0x140000477b0 sp=0x14000047760 pc=0x10213bb50
runtime.gcenable.func1()
	runtime/mgc.go:200 +0x28 fp=0x140000477d0 sp=0x140000477b0 pc=0x102130648
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000477d0 sp=0x140000477d0 pc=0x10217f5b4
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:200 +0x6c

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x14000070000?, 0x1033b16b8?, 0x1?, 0x0?, 0x140000031e0?)
	runtime/proc.go:398 +0xc8 fp=0x14000047f50 sp=0x14000047f30 pc=0x10214f208
runtime.goparkunlock(...)
	runtime/proc.go:404
runtime.(*scavengerState).park(0x103b60520)
	runtime/mgcscavenge.go:425 +0x5c fp=0x14000047f80 sp=0x14000047f50 pc=0x1021393fc
runtime.bgscavenge(0x0?)
	runtime/mgcscavenge.go:653 +0x44 fp=0x14000047fb0 sp=0x14000047f80 pc=0x102139954
runtime.gcenable.func2()
	runtime/mgc.go:201 +0x28 fp=0x14000047fd0 sp=0x14000047fb0 pc=0x1021305e8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000047fd0 sp=0x14000047fd0 pc=0x10217f5b4
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:201 +0xac

goroutine 5 [finalizer wait]:
runtime.gopark(0x140000465a8?, 0x10217a924?, 0x1?, 0x65?, 0x102195e44?)
	runtime/proc.go:398 +0xc8 fp=0x14000046580 sp=0x14000046560 pc=0x10214f208
runtime.runfinq()
	runtime/mfinal.go:193 +0x108 fp=0x140000467d0 sp=0x14000046580 pc=0x10212f6f8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x140000467d0 sp=0x140000467d0 pc=0x10217f5b4
created by runtime.createfing in goroutine 1
	runtime/mfinal.go:163 +0x80

goroutine 18 [select]:
runtime.gopark(0x14000048768?, 0x2?, 0x0?, 0x0?, 0x140000486e4?)
	runtime/proc.go:398 +0xc8 fp=0x14000212d60 sp=0x14000212d40 pc=0x10214f208
runtime.selectgo(0x14000212f68, 0x140000486e0, 0x0?, 0x1, 0x0?, 0x1)
	runtime/select.go:327 +0x608 fp=0x14000212e70 sp=0x14000212d60 pc=0x10215f958
os/exec.(*Cmd).watchCtx(0x14000098000, 0x140000a2060)
	os/exec/exec.go:757 +0x7c fp=0x14000212fb0 sp=0x14000212e70 pc=0x1021eb9cc
os/exec.(*Cmd).Start.func4()
	os/exec/exec.go:743 +0x2c fp=0x14000212fd0 sp=0x14000212fb0 pc=0x1021eb6ac
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000212fd0 sp=0x14000212fd0 pc=0x10217f5b4
created by os/exec.(*Cmd).Start in goroutine 6
	os/exec/exec.go:743 +0x788

goroutine 19 [IO wait]:
runtime.gopark(0xffffffffffffffff?, 0xffffffffffffffff?, 0x23?, 0x0?, 0x1021b0ef0?)
	runtime/proc.go:398 +0xc8 fp=0x14000325c40 sp=0x14000325c20 pc=0x10214f208
runtime.netpollblock(0x0?, 0x0?, 0x0?)
	runtime/netpoll.go:564 +0x158 fp=0x14000325c80 sp=0x14000325c40 pc=0x102148a48
internal/poll.runtime_pollWait(0x14df227b8, 0x72)
	runtime/netpoll.go:343 +0xa0 fp=0x14000325cb0 sp=0x14000325c80 pc=0x102179870
internal/poll.(*pollDesc).wait(0x1400009e0c0?, 0x140000bb000?, 0x1)
	internal/poll/fd_poll_runtime.go:84 +0x28 fp=0x14000325ce0 sp=0x14000325cb0 pc=0x1021c4918
internal/poll.(*pollDesc).waitRead(...)
	internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0x1400009e0c0, {0x140000bb000, 0x1000, 0x1000})
	internal/poll/fd_unix.go:164 +0x200 fp=0x14000325d80 sp=0x14000325ce0 pc=0x1021c53d0
os.(*File).read(...)
	os/file_posix.go:29
os.(*File).Read(0x1400008e018, {0x140000bb000?, 0x38?, 0x1037f4420?})
	os/file.go:118 +0x70 fp=0x14000325dc0 sp=0x14000325d80 pc=0x1021c8890
bufio.(*Reader).fill(0x1400009e1e0)
	bufio/bufio.go:113 +0xf8 fp=0x14000325e00 sp=0x14000325dc0 pc=0x102290c88
bufio.(*Reader).ReadByte(0x1400009e1e0)
	bufio/bufio.go:272 +0x2c fp=0x14000325e20 sp=0x14000325e00 pc=0x10229145c
github.com/neovim/go-client/msgpack.(*Decoder).Unpack(0x140000bc050)
	github.com/neovim/[email protected]/msgpack/unpack.go:164 +0x30 fp=0x14000325ea0 sp=0x14000325e20 pc=0x1022e2df0
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve(0x1400009c0d0)
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:195 +0xf8 fp=0x14000325f30 sp=0x14000325ea0 pc=0x1022e5198
github.com/neovim/go-client/nvim.(*Nvim).Serve(0x0?)
	github.com/neovim/[email protected]/nvim/nvim.go:50 +0xc0 fp=0x14000325f80 sp=0x14000325f30 pc=0x102314410
github.com/akiyosi/goneovim/editor.startNvim.func1()
	github.com/akiyosi/goneovim/editor/nvim.go:122 +0x2c fp=0x14000325fd0 sp=0x14000325f80 pc=0x10233847c
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000325fd0 sp=0x14000325fd0 pc=0x10217f5b4
created by github.com/akiyosi/goneovim/editor.startNvim in goroutine 6
	github.com/akiyosi/goneovim/editor/nvim.go:121 +0x504

goroutine 20 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:398 +0xc8 fp=0x140003216a0 sp=0x14000321680 pc=0x10214f208
runtime.chanrecv(0x14000070070, 0x0, 0x1)
	runtime/chan.go:583 +0x414 fp=0x14000321720 sp=0x140003216a0 pc=0x10211db34
runtime.chanrecv1(0x1?, 0x0?)
	runtime/chan.go:442 +0x14 fp=0x14000321750 sp=0x14000321720 pc=0x10211d714
github.com/akiyosi/goneovim/editor.handleNotification.func1({0x1400035e000, 0x6, 0x6})
	github.com/akiyosi/goneovim/editor/nvim.go:224 +0x50 fp=0x14000321780 sp=0x14000321750 pc=0x102338ab0
runtime.call32(0x14000296090, 0x14000302030, 0x0, 0x0, 0x0, 0x18, 0x14000321ce0)
	runtime/asm_arm64.s:479 +0x78 fp=0x140003217b0 sp=0x14000321780 pc=0x10217d578
runtime.reflectcall(0x1037b9dc0?, 0x140003435d8?, 0x4?, 0x332b48c?, 0x1?, 0x12?, 0x1037b9dc0?)
	<autogenerated>:1 +0x34 fp=0x140003217f0 sp=0x140003217b0 pc=0x102181564
reflect.Value.call({0x1037bec60?, 0x14000302030?, 0x13?}, {0x103328098, 0x9}, {0x140003435c0, 0x1, 0x1?})
	reflect/value.go:596 +0x994 fp=0x14000321e70 sp=0x140003217f0 pc=0x1021a2444
reflect.Value.CallSlice({0x1037bec60?, 0x14000302030?, 0x0?}, {0x140003435c0?, 0x0?, 0x1400009c198?})
	reflect/value.go:393 +0x94 fp=0x14000321ef0 sp=0x14000321e70 pc=0x1021a1a04
reflect.Value.CallSlice-fm({0x140003435c0?, 0x0?, 0x0?})
	<autogenerated>:1 +0x4c fp=0x14000321f30 sp=0x14000321ef0 pc=0x1022e89dc
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).runNotifications(0x1400009c0d0)
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:677 +0x78 fp=0x14000321fb0 sp=0x14000321f30 pc=0x1022e8648
github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve.func2()
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:192 +0x28 fp=0x14000321fd0 sp=0x14000321fb0 pc=0x1022e53f8
runtime.goexit()
	runtime/asm_arm64.s:1197 +0x4 fp=0x14000321fd0 sp=0x14000321fd0 pc=0x10217f5b4
created by github.com/neovim/go-client/msgpack/rpc.(*Endpoint).Serve in goroutine 19
	github.com/neovim/[email protected]/msgpack/rpc/rpc.go:192 +0xec

@akiyosi
Copy link
Owner

akiyosi commented Mar 31, 2024

Thanks for the info!

Hmmm, I have not been able to reproduce this in my environment...
There may be some other conditions.

@shiena
Copy link
Contributor Author

shiena commented Mar 31, 2024

Perhaps the difference in CPUs may have an impact.
My environments that crash are M2 Pro and M3.

@shiena
Copy link
Contributor Author

shiena commented Apr 4, 2024

I found a pull requests that fixes the same error message. I'm not sure if this fixes it in the same way.
wailsapp/wails#2152

@akiyosi
Copy link
Owner

akiyosi commented Apr 12, 2024

I also reproduced this problem in another operation.
However, I have not been able to identify the conditions to reproduce it at 100%.
Apparently, it seems to happen rarely when other window operations occur while Goneovim is running...

@shiena
Copy link
Contributor Author

shiena commented Apr 12, 2024

There is a fix for the same error message in golang itself. This fix has been incorporated in golang 1.22.2.
golang/go#60007

@shiena
Copy link
Contributor Author

shiena commented Apr 13, 2024

I tried building with go 1.22.2 but unfortunately it did not solve the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants