Skip to content

Labwc crashes on panel destruction with maximized & unmapped windows #2944

@tokyo4j

Description

@tokyo4j

Problem description

Same root cause as #2937.

When a panel is destroyed immediately (<100ms) after a maximized window is unmapped, labwc crashes at assertion: labwc: types/xdg_shell/wlr_xdg_surface.c:168: wlr_xdg_surface_schedule_configure: Assertion 'surface->initialized' failed.

Stacktrace:

labwc: types/xdg_shell/wlr_xdg_surface.c:168: wlr_xdg_surface_schedule_configure: Assertion `surface->initialized' failed.

Thread 1 "labwc" hit Breakpoint 1, 0x00007ffff6e3555c in abort () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff6e3555c in abort () at /usr/lib/libc.so.6
#1  0x00007ffff6e354e3 in ??? () at /usr/lib/libc.so.6
#2  0x0000555555638813 in wlr_xdg_surface_schedule_configure (surface=0x55555696ce00) at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_surface.c:168
#3  0x000055555563b6ee in wlr_xdg_toplevel_set_size (toplevel=0x5555568395b0, width=1280, height=720)
    at ../subprojects/wlroots/types/xdg_shell/wlr_xdg_toplevel.c:579
#4  0x00005555555a9ff6 in xdg_toplevel_view_configure (view=0x5555562b4aa0, geo=...) at ../src/xdg.c:499
#5  0x00005555555a1fce in view_move_resize (view=0x5555562b4aa0, geo=...) at ../src/view.c:636
#6  0x00005555555a3dd2 in view_apply_maximized_geometry (view=0x5555562b4aa0) at ../src/view.c:1334
#7  0x00005555555a3ece in view_apply_special_geometry (view=0x5555562b4aa0) at ../src/view.c:1350
#8  0x00005555555a4fe0 in view_adjust_for_layout_change (view=0x5555562b4aa0) at ../src/view.c:1885
#9  0x0000555555587b6f in desktop_arrange_all_views (server=0x7fffffffd350) at ../src/desktop.c:37
#10 0x0000555555592701 in output_update_usable_area (output=0x55555650aeb0) at ../src/output.c:1049
#11 0x000055555558bcca in handle_unmap (listener=0x55555678dcf8, data=0x0) at ../src/layers.c:373
#12 0x00007ffff7f7551e in wl_signal_emit_mutable () at /usr/lib/libwayland-server.so.0
#13 0x000055555563f733 in wlr_surface_unmap (surface=0x5555567e1f40) at ../subprojects/wlroots/types/wlr_compositor.c:860
#14 0x000055555563fc2e in surface_destroy_role_object (surface=0x5555567e1f40) at ../subprojects/wlroots/types/wlr_compositor.c:938
#15 0x000055555563ef6e in surface_handle_resource_destroy (resource=0x5555567e12f0) at ../subprojects/wlroots/types/wlr_compositor.c:728
#16 0x00007ffff7f77bbb in ??? () at /usr/lib/libwayland-server.so.0
#17 0x00007ffff7f77dd2 in wl_client_destroy () at /usr/lib/libwayland-server.so.0
#18 0x00007ffff7f77fda in ??? () at /usr/lib/libwayland-server.so.0
#19 0x00007ffff7f77112 in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#20 0x00007ffff7f791f7 in wl_display_run () at /usr/lib/libwayland-server.so.0
#21 0x000055555558ddca in main (argc=1, argv=0x7fffffffde38) at ../src/main.c:268

Steps to reproduce

  1. Launch waybar
  2. Run following commands:
git clone https://github.com/tokyo4j/wayland-demo.git -b remap
cd wayland-demo
make
./client & sleep 1; pkill waybar
  1. Maximize the window before it's unmapped
  2. When the window is unmapped and waybar is killed, labwc crashes

labwc build source

Local build

labwc version

0.9.0-16-gcb79ecce-dirty

labwc environment

From a TTY or some display manager like lightdm

Distribution

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions