Summary: | segfault in zwp_pointer_constraints_v1_lock_pointer | ||
---|---|---|---|
Product: | Wayland | Reporter: | Sebastien Bacher <seb128> |
Component: | XWayland | Assignee: | Wayland bug list <wayland-bugs> |
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Sebastien Bacher
2017-08-30 11:30:41 UTC
There've been several fixes in all those trees upstream. Can you try with upstream code instead (for both mutter, gnome-shell, Xwayland) so we can rule out a problem with the Ubuntu backport? Does it occur only in kvm? What about real hardware? > There've been several fixes in all those trees upstream. > Can you try with upstream code instead (for both mutter, gnome-shell, Xwayland) > so we can rule out a problem with the Ubuntu backport? I can try having a go, is there specific branches to try? or just GNOME trunk (3.25) ones? > Does it occur only in kvm? What about real hardware? sorry if the description was not clear, that's using GNOME on a laptop not in kvm, it's start kvm in the session to do tested on a daily iso which takes xwayland down I can reproduce a similar crash using qemu-kvm with SDL backend and alt-tabbing between the qemu window and some ohter native window in gnome-shell: Thread 1 "Xwayland" received signal SIGSEGV, Segmentation fault. 0x000000000042b77e in zwp_pointer_constraints_v1_lock_pointer (lifetime=2, region=0x0, pointer=<optimized out>, surface=<optimized out>, zwp_pointer_constraints_v1=0x1ef37d0) at pointer-constraints-unstable-v1-client-protocol.h:347 347 id = wl_proxy_marshal_constructor((struct wl_proxy *) zwp_pointer_constraints_v1, (gdb) bt #0 0x000000000042b77e in zwp_pointer_constraints_v1_lock_pointer (lifetime=2, region=0x0, pointer=<optimized out>, surface=<optimized out>, zwp_pointer_constraints_v1=0x1ef37d0) at pointer-constraints-unstable-v1-client-protocol.h:347 #1 xwl_pointer_warp_emulator_lock (warp_emulator=0x2c26db0) at xwayland-input.c:2584 #2 0x000000000042d998 in xwl_seat_maybe_lock_on_hidden_cursor (xwl_seat=xwl_seat@entry=0x29142f0) at xwayland-input.c:2756 #3 0x000000000042ef15 in xwl_seat_maybe_lock_on_hidden_cursor (xwl_seat=0x29142f0) at xwayland-input.c:2765 #4 xwl_seat_cursor_visibility_changed (xwl_seat=xwl_seat@entry=0x29142f0) at xwayland-input.c:2768 #5 0x000000000042fa68 in xwl_set_cursor (device=<optimized out>, screen=<optimized out>, cursor=<optimized out>, x=<optimized out>, y=<optimized out>) at xwayland-cursor.c:245 #6 0x00000000004c4b8a in miPointerUpdateSprite (pDev=0x28e6fa0) at mipointer.c:468 #7 0x00000000004c4dda in miPointerDisplayCursor (pDev=0x28e6fa0, pScreen=0x1ee6740, pCursor=0x2b988a0) at mipointer.c:206 #8 0x00000000004b2250 in CursorDisplayCursor (pDev=0x28e6fa0, pScreen=0x1ee6740, pCursor=0x2b988a0) at cursor.c:150 #9 0x000000000052e44f in AnimCurDisplayCursor (pDev=0x28e6fa0, pScreen=0x1ee6740, pCursor=0x2b988a0) at animcur.c:220 #10 0x000000000044cc4b in ChangeToCursor (pDev=0x28e6fa0, cursor=0x2b988a0) at events.c:936 #11 0x0000000000453d3e in ActivatePointerGrab (mouse=0x28e6fa0, grab=0x2d1d7f0, time=..., autoGrab=<optimized out>) at events.c:1542 #12 0x000000000044ecd1 in GrabDevice (client=client@entry=0x2ae5720, dev=dev@entry=0x28e6fa0, pointer_mode=1, keyboard_mode=1, grabWindow=<optimized out>, ownerEvents=<optimized out>, ctime=0, mask=0x7ffce3a623f0, grabtype=1, curs=0, confineToWin=4194314, status=0x7ffce3a623ef "") at events.c:5120 #13 0x000000000045180a in ProcGrabPointer (client=0x2ae5720) at events.c:4908 #14 0x0000000000443ffa in Dispatch () at dispatch.c:478 #15 0x0000000000447f08 in dix_main (argc=10, argv=0x7ffce3a625e8, envp=<optimized out>) at main.c:276 #16 0x00007efc0168250a in __libc_start_main () from /lib64/libc.so.6 #17 0x000000000042979a in _start () (gdb) f 1 #1 xwl_pointer_warp_emulator_lock (warp_emulator=0x2c26db0) at xwayland-input.c:2584 2584 zwp_pointer_constraints_v1_lock_pointer(pointer_constraints, (gdb) list 2579 struct xwl_window *lock_window = xwl_seat->focus_window; 2580 2581 warp_emulator->locked_window = lock_window; 2582 2583 warp_emulator->locked_pointer = 2584 zwp_pointer_constraints_v1_lock_pointer(pointer_constraints, 2585 lock_window->surface, 2586 xwl_seat->wl_pointer, 2587 NULL, 2588 ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT); (gdb) p *xwl_seat value has been optimized out (gdb) p *lock_window Cannot access memory at address 0x0 Possible fix here: https://patchwork.freedesktop.org/patch/174476/ the patch seems to fix the segfault indeed Patch has bee pushed in git master, commit cdd0352b |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.