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

SIGSEGV with a signal containing *glib.Value #55

Open
diamondburned opened this issue Jan 16, 2022 · 8 comments
Open

SIGSEGV with a signal containing *glib.Value #55

diamondburned opened this issue Jan 16, 2022 · 8 comments

Comments

@diamondburned
Copy link
Owner

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/pkg@v0.0.0-20211231035909-9969b912d153/core/glib/glib.go:724
github.com/diamondburned/gotk4/pkg/core/glib.(*value).unset(0xc001932298)
	/home/diamond/.go/pkg/mod/github.com/diamondburned/gotk4/pkg@v0.0.0-20211231035909-9969b912d153/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.
@fleshin
Copy link

fleshin commented Apr 2, 2022

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

@diamondburned
Copy link
Owner Author

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

@fleshin
Copy link

fleshin commented Apr 3, 2022

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/pkg@v0.0.0-20220331164549-9ddf852f5963/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/pkg@v0.0.0-20220331164549-9ddf852f5963/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

@diamondburned
Copy link
Owner Author

diamondburned commented Apr 3, 2022

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

@fleshin
Copy link

fleshin commented Apr 3, 2022

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 ()

@diamondburned
Copy link
Owner Author

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
Copy link
Owner Author

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

@fleshin
Copy link

fleshin commented Apr 4, 2022

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

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

No branches or pull requests

2 participants