Bug 72885

Summary: Weston crashes on zooming in and out events
Product: Wayland Reporter: Anu Reddy <anasuyax.r.nannuri>
Component: westonAssignee: Wayland bug list <wayland-bugs>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Weston zoom in/out log

Description Anu Reddy 2013-12-19 17:22:59 UTC
Steps:
1.	Launch Weston
2.	Press and hold <Mod> and scroll the mouse wheel to zoom in. Release <Mod>. 
3.	Press and hold <Mod> and scroll the mouse wheel to zoom all the way back out. 
4.	While zooming out press the mouse right button. Observe Weston crash. I am able to reproduce this bug most of the times. 


Environment :

Kernel:3.9.5-301.fc19.x86_64
wayland (HEAD) 1.3.91-0-g01bde63
drm (HEAD) libdrm-2.4.50-0-g4c5de72
mesa (HEAD) remotes/origin/10.0-0-g6f7da01
libva (HEAD) libva-1.2.1-0-g88ed1eb
intel-driver (HEAD) 1.2.1-0-g8f306e3
weston (HEAD) remotes/origin/master-0-gdf42a80
efl (HEAD) remotes/origin/efl-1.8-0-g90c2320
elementary (HEAD) remotes/origin/elementary-1.8-0-ge077db6
wayland-fits (HEAD) remotes/origin/HEAD-0-gcd75d94
Comment 1 Anu Reddy 2013-12-19 17:27:33 UTC
Created attachment 90996 [details]
Weston zoom in/out log
Comment 2 Anu Reddy 2014-01-08 23:23:03 UTC
Program received signal SIGSEGV, Segmentation fault.
0x00007f77f86d29ef in rotate_binding (seat=0x1507770, time=1984767345, button=273, data=0x0) at shell.c:4103
4103		struct weston_surface *focus = seat->pointer->focus->surface;
(gdb) p seat
$1 = (struct weston_seat *) 0x1507770
(gdb) p seat->pointer
$2 = (struct weston_pointer *) 0x150cf70
(gdb) p seat->pointer->focus
$3 = (struct weston_view *) 0x0
(gdb) bt
#0  0x00007f77f86d29ef in rotate_binding (seat=0x1507770, time=1984767345, button=273, data=0x0) at shell.c:4103
#1  0x00000000004249eb in weston_compositor_run_button_binding (compositor=0x13b3720, seat=0x1507770, time=1984767345, 
    button=273, state=WL_POINTER_BUTTON_STATE_PRESSED) at bindings.c:337
#2  0x00000000004171a6 in notify_button (seat=0x1507770, time=1984767345, button=273, 
    state=WL_POINTER_BUTTON_STATE_PRESSED) at input.c:1009
#3  0x00007f77fc074af0 in evdev_process_key (device=0x150d0e0, e=0x7fff46d3a318, time=1984767345) at evdev.c:192
#4  0x00007f77fc07539c in fallback_process (dispatch=0x150d060, device=0x150d0e0, event=0x7fff46d3a318, time=1984767345)
    at evdev.c:350
#5  0x00007f77fc075524 in evdev_process_events (device=0x150d0e0, ev=0x7fff46d3a300, count=3) at evdev.c:394
#6  0x00007f77fc0756b3 in evdev_device_data (fd=28, mask=1, data=0x150d0e0) at evdev.c:432
#7  0x00007f77fd2bac3e in wl_event_source_fd_dispatch (source=0x1446710, ep=0x7fff46d3a670) at event-loop.c:86
#8  0x00007f77fd2bb8b2 in wl_event_loop_dispatch (loop=0x13b4cf0, timeout=0) at event-loop.c:421
#9  0x000000000040da75 in weston_output_repaint (output=0x13c70d0, msecs=17465006) at compositor.c:1864
#10 0x000000000040dc98 in weston_output_finish_frame (output=0x13c70d0, msecs=17465006) at compositor.c:1902
#11 0x00007f77fc06c70b in page_flip_handler (fd=13, frame=721166, sec=17465, usec=6708, data=0x13c70d0)
    at compositor-drm.c:759
#12 0x00007f77fb3b91c4 in drmHandleEvent (fd=13, evctx=0x7fff46d3ad80) at xf86drmMode.c:826
#13 0x00007f77fc06e18f in on_drm_input (fd=13, mask=1, data=0x13b3720) at compositor-drm.c:1253
#14 0x00007f77fd2bac3e in wl_event_source_fd_dispatch (source=0x145ff10, ep=0x7fff46d3adf0) at event-loop.c:86
#15 0x00007f77fd2bb8b2 in wl_event_loop_dispatch (loop=0x13abec0, timeout=-1) at event-loop.c:421
#16 0x00007f77fd2b8a72 in wl_display_run (display=0x13abe30) at wayland-server.c:961
#17 0x0000000000413d68 in main (argc=1, argv=0x7fff46d3b258) at compositor.c:4251
(gdb)
Comment 3 Kristian Høgsberg 2014-01-09 06:20:19 UTC
commit b2917a2fedd62a0938f0f34921fe57e5320d5fdb
Author: Rafal Mielniczuk <rafal.mielniczuk2@gmail.com>
Date:   Sun Jan 5 20:04:59 2014 +0100

    shell: run surface bindings only when focus surface is not NULL
    
    This fixes the crash when move, rotate or resize binding is activated
    while exposay effect is active.
    
    Steps to reproduce:
    - activate exposay
    - try to rotate the surface with mod + right mouse button
    - crash
    
    Closes: https://bugs.freedesktop.org/show_bug.cgi?id=72885

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.