wlroots issueshttps://source.puri.sm/Librem5/wlroots/-/issues2020-09-21T10:32:48Zhttps://source.puri.sm/Librem5/wlroots/-/issues/38etnaviv: Crashes with two outputs when client binds wlr_output_management and...2020-09-21T10:32:48ZGuido Guntheretnaviv: Crashes with two outputs when client binds wlr_output_management and wlroots fails to bind the framebufferThis is phoc 0.4.2 with wlroots 0.11.0 (as currently in Debian):
```
Sep 11 20:24:36 pureos phosh[23307]: phoc: types/wlr_output_management_v1.c:690: head_send_state: Assertion `head->state.mode != NULL || wl_list_empty(&head->state.ou...This is phoc 0.4.2 with wlroots 0.11.0 (as currently in Debian):
```
Sep 11 20:24:36 pureos phosh[23307]: phoc: types/wlr_output_management_v1.c:690: head_send_state: Assertion `head->state.mode != NULL || wl_list_empty(&head->state.output->modes)' failed.
```
```
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000ffffb8a44de0 in __GI_abort () at abort.c:79
#2 0x0000ffffb8a51708 in __assert_fail_base (fmt=0xffffb8b4d560 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0xffffb8c6ab58 "head->state.mode != NULL || wl_list_empty(&head->state.output->modes)", file=file@entry=0xffffb8c6a980 "types/wlr_output_management_v1.c", line=line@entry=690,
function=function@entry=0xffffb8c6ad30 <__PRETTY_FUNCTION__.0> "head_send_state") at assert.c:92
#3 0x0000ffffb8a5176c in __GI___assert_fail (assertion=assertion@entry=0xffffb8c6ab58 "head->state.mode != NULL || wl_list_empty(&head->state.output->modes)",
file=file@entry=0xffffb8c6a980 "types/wlr_output_management_v1.c", line=line@entry=690, function=function@entry=0xffffb8c6ad30 <__PRETTY_FUNCTION__.0> "head_send_state") at assert.c:101
#4 0x0000ffffb8c45840 in head_send_state (head=0xaaaae055f7d0, head_resource=0xaaaae0b751a0, state=31) at protocol/wlr-output-management-unstable-v1-protocol.h:453
#5 0x0000ffffb8c45dbc in manager_bind (client=<optimized out>, data=0xaaaae04135e0, version=<optimized out>, id=<optimized out>) at ../types/wlr_output_management_v1.c:579
#6 0x0000ffffb8824e98 in ?? () from /usr/lib/aarch64-linux-gnu/libffi.so.7
#7 0x0000ffffb88245e0 in ?? () from /usr/lib/aarch64-linux-gnu/libffi.so.7
#8 0x0000ffffb8cb1a20 in wl_closure_invoke (closure=closure@entry=0xaaaae0b84010, flags=flags@entry=2, target=<optimized out>, opcode=0, data=<optimized out>, data@entry=0xaaaae0b73c00)
at ../src/connection.c:1018
#9 0x0000ffffb8cacd80 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0xaaaae0b73c00) at ../src/wayland-server.c:432
#10 0x0000ffffb8cafa68 in wl_event_loop_dispatch (loop=0xaaaadfdabe00, timeout=timeout@entry=0) at ../src/event-loop.c:1027
#11 0x0000aaaacff091bc in wayland_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at ../src/server.c:42
#12 0x0000ffffb8ed644c in g_main_context_dispatch () from /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#13 0x0000ffffb8ed66b8 in ?? () from /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#14 0x0000ffffb8ed69f8 in g_main_loop_run () from /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#15 0x0000aaaacff08ed8 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:137
```
It doesn't crash when clients don't bind that protocol, also doesn't happen on intel.