gotk4 icon indicating copy to clipboard operation
gotk4 copied to clipboard

SIGSEGV with a signal containing `*glib.Value`

Open diamondburned opened this issue 3 years ago • 8 comments

Stack trace:

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

runtime stack:
runtime.throw({0x202b6fb, 0x7f4b88ea7a98})
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/panic.go:1198 +0x71
runtime.sigpanic()
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/signal_unix.go:719 +0x396

goroutine 5 [syscall]:
runtime.cgocall(0x1bc2810, 0xc00009bdf0)
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/cgocall.go:156 +0x5c fp=0xc00009bdc8 sp=0xc00009bd90 pc=0x54949c
github.com/diamondburned/gotk4/pkg/core/glib._Cfunc__g_is_value(0x7f4b3423e9e0)
	_cgo_gotypes.go:631 +0x48 fp=0xc00009bdf0 sp=0xc00009bdc8 pc=0x821728
github.com/diamondburned/gotk4/pkg/core/glib.(*value).isValue(...)
	/home/diamond/.go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/core/glib/glib.go:724
github.com/diamondburned/gotk4/pkg/core/glib.(*value).unset(0xc001932298)
	/home/diamond/.go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/core/glib/glib.go:717 +0x25 fp=0xc00009be10 sp=0xc00009bdf0 pc=0x829345
runtime.call16(0x0, 0x20920f0, 0xc001adc000, 0x0, 0x0, 0x0, 0xc00009bec0)
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/asm_amd64.s:625 +0x49 fp=0xc00009be30 sp=0xc00009be10 pc=0x5a9149
runtime.runfinq()
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/mfinal.go:245 +0x3ac fp=0xc00009bfe0 sp=0xc00009be30 pc=0x55e76c
runtime.goexit()
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00009bfe8 sp=0xc00009bfe0 pc=0x5aae21
created by runtime.createfing
	/nix/store/1y1sxwam2jf1f5w9dqfg44wdpwappdch-go-1.17/share/go/src/runtime/mfinal.go:157 +0x45

Possible cause:

  • The marshaler probably didn't marshal properly.
  • The finalizer wasn't attached properly.

diamondburned avatar Jan 16 '22 02:01 diamondburned

The example gtk4/simple crashes with this message. Any known workaround?

fleshin avatar Apr 02 '22 14:04 fleshin

What commit are you on? It shouldn't crash on simple.

diamondburned avatar Apr 03 '22 05:04 diamondburned

Upgraded but still crashing: require github.com/diamondburned/gotk4/pkg v0.0.0-20220221063304-bbd86ac49f1b go: upgraded github.com/diamondburned/gotk4/pkg v0.0.0-20220221063304-bbd86ac49f1b => v0.0.0-20220331164549-9ddf852f5963

Trace (using go 1.18 from Arch official repos): [signal SIGSEGV: segmentation violation code=0x1 addr=0x2a0 pc=0x7effdb6e308b]

runtime stack: runtime.throw({0x931ce4?, 0x7effdbb24840?}) /usr/lib/go/src/runtime/panic.go:992 +0x71 runtime.sigpanic() /usr/lib/go/src/runtime/signal_unix.go:802 +0x3a9

goroutine 1 [syscall]: runtime.cgocall(0x7adb50, 0xc00004fe20) /usr/lib/go/src/runtime/cgocall.go:157 +0x5c fp=0xc00004fdf8 sp=0xc00004fdc0 pc=0x55003c github.com/diamondburned/gotk4/pkg/gio/v2._Cfunc_g_application_run(0x2b9a290, 0x1, 0x2bd4460) _cgo_gotypes.go:5617 +0x4c fp=0xc00004fe20 sp=0xc00004fdf8 pc=0x6037ac github.com/diamondburned/gotk4/pkg/gio/v2.(*Application).Run.func3(0xc000143990?, 0x27?, 0x2bd4460?) /home/fleshin/go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:1619 +0x71 fp=0xc00004fe68 sp=0xc00004fe20 pc=0x61a9b1 github.com/diamondburned/gotk4/pkg/gio/v2.(*Application).Run(0xc00000e090, {0xc0000121e0?, 0x1, 0x1}) /home/fleshin/go/pkg/mod/github.com/diamondburned/gotk4/[email protected]/gio/v2/gapplication.go:1619 +0x1d8 fp=0xc00004ff28 sp=0xc00004fe68 pc=0x61a898 main.main() /home/fleshin/src/gotk4-examples/gtk4/simple/main.go:13 +0xb4 fp=0xc00004ff80 sp=0xc00004ff28 pc=0x75b094 runtime.main() /usr/lib/go/src/runtime/proc.go:250 +0x212 fp=0xc00004ffe0 sp=0xc00004ff80 pc=0x582012 runtime.goexit() /usr/lib/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc00004ffe8 sp=0xc00004ffe0 pc=0x5ad041 exit status 2

fleshin avatar Apr 03 '22 13:04 fleshin

This looks to be a completely different bug. Can you run it in gdb and show me the stack trace of the thread?

diamondburned avatar Apr 03 '22 20:04 diamondburned

Yes, it seems the error is different after the upgrade. The GTK4 demos run properly. Here is the output of gdb's backtrace. Thanks a lot for looking at this!

(gdb) run Starting program: /home/fleshin/src/gotk4-examples/gtk4/simple/simple [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". [New Thread 0x7fffccfe4640 (LWP 9851)] [New Thread 0x7fffc7fff640 (LWP 9852)] [New Thread 0x7fffc77fe640 (LWP 9853)] [New Thread 0x7fffc6ffd640 (LWP 9854)] [New Thread 0x7fffc67fc640 (LWP 9855)] [New Thread 0x7fffc5ffb640 (LWP 9856)] [New Thread 0x7fffc57fa640 (LWP 9857)] [New Thread 0x7fffc4ff9640 (LWP 9858)] [New Thread 0x7fffa7fff640 (LWP 9859)] [Thread 0x7fffa7fff640 (LWP 9859) exited] [New Thread 0x7fffa7fff640 (LWP 9860)] [New Thread 0x7fffa5d73640 (LWP 9861)] [New Thread 0x7fffa5572640 (LWP 9862)] [New Thread 0x7fffa4d71640 (LWP 9863)] [Thread 0x7fffa4d71640 (LWP 9863) exited] [Thread 0x7fffa5572640 (LWP 9862) exited] [Thread 0x7fffa5d73640 (LWP 9861) exited] [Thread 0x7fffa7fff640 (LWP 9860) exited] [New Thread 0x7fffa7fff640 (LWP 9864)] [New Thread 0x7fffa4d71640 (LWP 9865)] [New Thread 0x7fffa5572640 (LWP 9866)] [New Thread 0x7fffa5d73640 (LWP 9867)] [New Thread 0x7fff996e9640 (LWP 9868)] [New Thread 0x7fff98ee8640 (LWP 9869)] [New Thread 0x7fff83fff640 (LWP 9870)] [New Thread 0x7fff837fe640 (LWP 9871)] [Thread 0x7fff83fff640 (LWP 9870) exited] [Thread 0x7fff837fe640 (LWP 9871) exited]

Thread 1 "simple" received signal SIGSEGV, Segmentation fault. 0x00007fffa6ee208b in ?? () from /usr/lib/dri/iris_dri.so (gdb) backtrace #0 0x00007fffa6ee208b in () at /usr/lib/dri/iris_dri.so #1 0x00007fffa6ee27e8 in () at /usr/lib/dri/iris_dri.so #2 0x00007fffa6be15d4 in () at /usr/lib/dri/iris_dri.so #3 0x00007fffa6b2a5d4 in () at /usr/lib/dri/iris_dri.so #4 0x00007fffa6b301dc in () at /usr/lib/dri/iris_dri.so #5 0x00007fffa6b32965 in () at /usr/lib/dri/iris_dri.so #6 0x00007fffa6bfd940 in () at /usr/lib/dri/iris_dri.so #7 0x00007fffa6c01a27 in () at /usr/lib/dri/iris_dri.so #8 0x00007fffa6c1573d in () at /usr/lib/dri/iris_dri.so #9 0x00007fffa6a4ca59 in () at /usr/lib/dri/iris_dri.so #10 0x00007fffa63199b7 in () at /usr/lib/dri/iris_dri.so #11 0x00007fffa631a84a in () at /usr/lib/dri/iris_dri.so #12 0x00007fffa6e59643 in () at /usr/lib/dri/iris_dri.so #13 0x00007fffa631ab05 in () at /usr/lib/dri/iris_dri.so #14 0x00007fffa5efcbd8 in () at /usr/lib/dri/iris_dri.so #15 0x00007fffa5eb04cf in () at /usr/lib/dri/iris_dri.so #16 0x00007fffa5ebb889 in () at /usr/lib/dri/iris_dri.so #17 0x00007fffa5ebb979 in () at /usr/lib/dri/iris_dri.so #18 0x00007ffff7c4966d in () at /usr/lib/libgtk-4.so.1 #19 0x00007ffff7c4ba60 in () at /usr/lib/libgtk-4.so.1 #20 0x00007ffff7c4b969 in () at /usr/lib/libgtk-4.so.1 #21 0x00007ffff7c2fa13 in () at /usr/lib/libgtk-4.so.1 #22 0x00007ffff7c1600d in gsk_renderer_render () at /usr/lib/libgtk-4.so.1 #23 0x00007ffff7acc146 in () at /usr/lib/libgtk-4.so.1 #24 0x00007ffff7acceb9 in () at /usr/lib/libgtk-4.so.1 #25 0x00007ffff7b97449 in () at /usr/lib/libgtk-4.so.1 #26 0x00007ffff73066b6 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #27 0x00007ffff7306824 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #28 0x00007ffff7bc435c in () at /usr/lib/libgtk-4.so.1 #29 0x00007ffff73066b6 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #30 0x00007ffff7306824 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #31 0x00007ffff7bb8e09 in () at /usr/lib/libgtk-4.so.1 #32 0x00007ffff71ec958 in () at /usr/lib/libglib-2.0.so.0 #33 0x00007ffff71ec163 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #34 0x00007ffff72429e9 in () at /usr/lib/libglib-2.0.so.0 #35 0x00007ffff71e96c5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #36 0x00007ffff74074ee in g_application_run () at /usr/lib/libgio-2.0.so.0 #37 0x00000000007adb6e in _cgo_3dfe9b1c5554_Cfunc_g_application_run (v=0xc00004ae20) at /tmp/go-build/cgo-gcc-prolog:453 #38 0x00000000005acd04 in runtime.asmcgocall () at /usr/lib/go/src/runtime/asm_amd64.s:821 #39 0x00007fffffffdc68 in ()

fleshin avatar Apr 03 '22 22:04 fleshin

I'm actually not sure why this happens. Can you rebuild using go build -a just to confirm?

If that doesn't work, does running it with GSK_RENDERER=cairo work?

diamondburned avatar Apr 04 '22 00:04 diamondburned

Also, it would be better if you could make a new issue for this problem.

diamondburned avatar Apr 04 '22 00:04 diamondburned

GSK_RENDERER=cairo did the trick. Thanks and sorry for polluting you issue.

fleshin avatar Apr 04 '22 01:04 fleshin