vfaronov / gunison

New GUI for the Unison synchronizer
MIT License
11 stars 0 forks source link

Freezes in xcb_wait_for_reply64 #5

Open vfaronov opened 3 years ago

vfaronov commented 3 years ago

Sometimes the Gunison UI just freezes for no apparent reason. This has happened to me a few times on Linux.

GDB backtrace at the time of freeze ``` #0 0x00007f8d614e3aff in __GI___poll (fds=0x7ffc40d00188, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f8d60a86c1a in () at /lib/x86_64-linux-gnu/libxcb.so.1 #2 0x00007f8d60a8861f in () at /lib/x86_64-linux-gnu/libxcb.so.1 #3 0x00007f8d60a88796 in xcb_wait_for_reply64 () at /lib/x86_64-linux-gnu/libxcb.so.1 #4 0x00007f8d6117fee8 in _XReply () at /lib/x86_64-linux-gnu/libX11.so.6 #5 0x00007f8d6117b7f1 in XSync () at /lib/x86_64-linux-gnu/libX11.so.6 #6 0x00007f8d61856f86 in find_current_serial (xdisplay=0x2667f20) at ../../../../../gdk/x11/gdkgeometry-x11.c:107 #7 gdk_window_queue (new_item=0x2a0c110, window=0x2815c70 [GdkX11Window]) at ../../../../../gdk/x11/gdkgeometry-x11.c:167 #8 _gdk_x11_window_queue_antiexpose (window=0x2815c70 [GdkX11Window], area=) at ../../../../../gdk/x11/gdkgeometry-x11.c:224 #9 0x00007f8d618354a9 in gdk_window_process_updates_internal (window=0x2815c70 [GdkX11Window]) at ../../../../gdk/gdkwindow.c:4018 #10 0x00007f8d61835674 in gdk_window_process_updates_with_mode (recurse_mode=, window=) at ../../../../gdk/gdkwindow.c:4215 #11 gdk_window_process_updates_with_mode (window=, recurse_mode=) at ../../../../gdk/gdkwindow.c:4186 #12 0x00007f8d621d9a56 in _g_closure_invoke_va (closure=0x29502d0, return_value=0x0, instance=0x269e410, args=0x7ffc40d007a0, n_params=0, param_types=0x0) at ../../../gobject/gclosure.c:873 #13 0x00007f8d621f8b48 in g_signal_emit_valist (instance=0x269e410, signal_id=, detail=0, var_args=var_args@entry=0x7ffc40d007a0) at ../../../gobject/gsignal.c:3408 #14 0x00007f8d621f90f3 in g_signal_emit (instance=instance@entry=0x269e410, signal_id=, detail=detail@entry=0) at ../../../gobject/gsignal.c:3555 #15 0x00007f8d6182c3b3 in _gdk_frame_clock_emit_paint (frame_clock=frame_clock@entry=0x269e410 [GdkFrameClockIdle]) at ../../../../gdk/gdkframeclock.c:643 #16 0x00007f8d6182ccf3 in gdk_frame_clock_paint_idle (data=0x269e410) at ../../../../gdk/gdkframeclockidle.c:450 #17 0x00007f8d61816f4d in gdk_threads_dispatch (data=0x2a10400, data@entry=) at ../../../../gdk/gdk.c:769 #18 0x00007f8d620eebe8 in g_timeout_dispatch (source=0x2a13d10, callback=, user_data=) at ../../../glib/gmain.c:4800 #19 0x00007f8d620ee04e in g_main_dispatch (context=0x268f9b0) at ../../../glib/gmain.c:3309 #20 g_main_context_dispatch (context=context@entry=0x268f9b0) at ../../../glib/gmain.c:3974 #21 0x00007f8d620ee400 in g_main_context_iterate (context=0x268f9b0, block=block@entry=1, dispatch=dispatch@entry=1, self=) at ../../../glib/gmain.c:4047 #22 0x00007f8d620ee6f3 in g_main_loop_run (loop=0x2a604b0) at ../../../glib/gmain.c:4241 #23 0x00007f8d61b3937d in gtk_main () at ../../../../gtk/gtkmain.c:1328 #24 0x00000000004eb7f0 in runtime.asmcgocall () at /home/vasiliy/cur/ware/go/1.16/src/runtime/asm_amd64.s:667 #25 0x000000c000010530 in () #26 0x000000000085cfa0 in runtime.m0 () #27 0x000000c00013ddd8 in () #28 0x0000000000000001 in () #29 0x000000c00013dde8 in () #30 0x0000000000000120 in () #31 0x000000c000000180 in () #32 0x000000001adfcbda in () #33 0x00000000004bcb80 in runtime.mstart () at /home/vasiliy/cur/ware/go/1.16/src/runtime/signal_unix.go:1035 #34 0x00000000004e9c14 in runtime.rt0_go () at /home/vasiliy/cur/ware/go/1.16/src/runtime/asm_amd64.s:226 #35 0x0000000000000000 in () ```
Go backtrace (on SIGQUIT) ``` PC=0x7f8d614e3aff m=0 sigcode=0 signal arrived during cgo execution goroutine 1 [syscall, 3 minutes, locked to thread]: runtime.cgocall(0x60aa40, 0xc000431f50, 0x0) /home/vasiliy/cur/ware/go/1.16/src/runtime/cgocall.go:154 +0x5b fp=0xc000431f20 sp=0xc000431ee8 pc=0x485c3b github.com/gotk3/gotk3/gtk._Cfunc_gtk_main() _cgo_gotypes.go:17384 +0x3c fp=0xc000431f50 sp=0xc000431f20 pc=0x5a549c github.com/gotk3/gotk3/gtk.Main(...) /home/vasiliy/.cache/gopath/pkg/mod/github.com/gotk3/gotk3@v0.5.3-0.20210514043925-3f44af595c5e/gtk/gtk.go:1241 main.main() /home/vasiliy/cur/gunison/gunison/main.go:86 +0xf6 fp=0xc000431f88 sp=0xc000431f50 pc=0x5e5396 runtime.main() /home/vasiliy/cur/ware/go/1.16/src/runtime/proc.go:225 +0x256 fp=0xc000431fe0 sp=0xc000431f88 pc=0x4ba0f6 runtime.goexit() /home/vasiliy/cur/ware/go/1.16/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc000431fe8 sp=0xc000431fe0 pc=0x4ebb81 goroutine 6 [IO wait, 3 minutes]: internal/poll.runtime_pollWait(0x7f8d3872ca48, 0x72, 0xffffffffffffffff) /home/vasiliy/cur/ware/go/1.16/src/runtime/netpoll.go:222 +0x55 internal/poll.(*pollDesc).wait(0xc000067098, 0x72, 0x10001, 0x10000, 0xffffffffffffffff) /home/vasiliy/cur/ware/go/1.16/src/internal/poll/fd_poll_runtime.go:87 +0x45 internal/poll.(*pollDesc).waitRead(...) /home/vasiliy/cur/ware/go/1.16/src/internal/poll/fd_poll_runtime.go:92 internal/poll.(*FD).Read(0xc000067080, 0xc00008e000, 0x10000, 0x10000, 0x0, 0x0, 0x0) /home/vasiliy/cur/ware/go/1.16/src/internal/poll/fd_unix.go:166 +0x1d5 os.(*File).read(...) /home/vasiliy/cur/ware/go/1.16/src/os/file_posix.go:31 os.(*File).Read(0xc000010518, 0xc00008e000, 0x10000, 0x10000, 0x3, 0x0, 0x0) /home/vasiliy/cur/ware/go/1.16/src/os/file.go:117 +0x77 main.watchUnison() /home/vasiliy/cur/gunison/gunison/main.go:126 +0x8b created by main.startUnison /home/vasiliy/cur/gunison/gunison/main.go:119 +0x4bf rax 0xfffffffffffffffc rbx 0x2669180 rcx 0x7f8d614e3aff rdx 0xffffffff rdi 0x7ffc40d00188 rsi 0x1 rbp 0x0 rsp 0x7ffc40d00150 r8 0x0 r9 0x7f8d615b9b80 r10 0x7 r11 0x293 r12 0x7ffc40d002a0 r13 0x0 r14 0x2669198 r15 0x7ffc40d00188 rip 0x7f8d614e3aff rflags 0x293 cs 0x33 fs 0x0 gs 0x0 ```

I also had one lock-up on Windows, which obviously must have had some other cause, but I didn’t get a backtrace.