Package: libwlroots-0.19 Version: 0.19.0-2 Severity: important Control: affects -1 sway
I'm using sway 1.11-2, which links to libwlroots-0.19 0.19.0-2. in the
last several days, i've had a series of crashes of sway. They tend to
happen when using chromium while scrolling some fancy website, but i
can't be sure that's the cause.
when the crash happens, sway emits this line on stdout/stderr:
```
sway: render/pass.c:23: wlr_render_pass_add_texture: Assertion `box->x >= 0 &&
box->y >= 0 && box->x + box->width <= options->texture->width && box->y +
box->height <= options->texture->height' failed.
```
Immediately following (i'm not sure whether it's sway or a separate
process that is launched by sway) i also see these lines:
```
err: wayland.c:1659: failed to read events from the Wayland socket: Broken pipe
err: err: wayland.c:1659: wayland.c:1659: failed to read events from the
Wayland socketfailed to read events from the Wayland socket: Broken pipe:
Broken pipe
```
I think these lines are follow-on consequences of the assertion.
The code in question is in wlroots:
```
void wlr_render_pass_add_texture(struct wlr_render_pass *render_pass,
const struct wlr_render_texture_options *options) {
// make sure the texture source box does not try and sample outside of
the
// texture
if (!wlr_fbox_empty(&options->src_box)) {
const struct wlr_fbox *box = &options->src_box;
assert(box->x >= 0 && box->y >= 0 &&
box->x + box->width <= options->texture->width &&
box->y + box->height <= options->texture->height);
}
render_pass->impl->add_texture(render_pass, options);
}
```
I've tried to attach gdb to the sway process to be able to gather a
backtrace during such a crash, but i haven't been able to get one yet.
What i find is that when the crash happens, sway freezes completely, and
i can't even use ctrl-alt-f2 to switch to a different VT, so i can't get
into the gdb session to extract a more full backtrace.
If anyone has suggestions on how i can get a more complete backtrace
(the machine in question doesn't run ssh or offer any other external
connectivity) i'm willing to experiment.
At any rate, these crashes make sway fundamentally unreliable for me.
It makes wlroots seem very fragile. Can this assertion be safely
replaced with just returning from the function (without calling the
final add_texture)? or is there some other workaround that i should
consider?
Regards,
--dkg
-- System Information:
Debian Release: forky/sid
APT prefers testing-debug
APT policy: (500, 'testing-debug'), (500, 'testing'), (200,
'unstable-debug'), (200, 'unstable'), (1, 'experimental-debug'), (1,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 6.16.3+deb14-amd64 (SMP w/20 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libwlroots-0.19 depends on:
ii libc6 2.41-12
ii libdisplay-info2 0.2.0-2
ii libdrm2 2.4.125-2
ii libegl1 1.7.0-1+b2
ii libgbm1 25.2.2-1
ii libgles2 1.7.0-1+b2
ii libinput10 1.28.1-1
ii liblcms2-2 2.16-2
ii libliftoff0 0.5.0-1.1
ii libpixman-1-0 0.44.0-3
ii libseat1 0.9.1-1
ii libudev1 258~rc4-1
ii libvulkan1 1.4.321.0-1
ii libwayland-client0 1.24.0-2+b1
ii libwayland-server0 1.24.0-2+b1
ii libxcb-composite0 1.17.0-2+b1
ii libxcb-dri3-0 1.17.0-2+b1
ii libxcb-errors0 1.0.1-4
ii libxcb-ewmh2 0.4.2-1
ii libxcb-icccm4 0.4.2-1
ii libxcb-present0 1.17.0-2+b1
ii libxcb-render-util0 0.3.10-1
ii libxcb-render0 1.17.0-2+b1
ii libxcb-res0 1.17.0-2+b1
ii libxcb-shm0 1.17.0-2+b1
ii libxcb-xfixes0 1.17.0-2+b1
ii libxcb-xinput0 1.17.0-2+b1
ii libxcb1 1.17.0-2+b1
ii libxkbcommon0 1.7.0-2.1
libwlroots-0.19 recommends no packages.
libwlroots-0.19 suggests no packages.
-- no debconf information
signature.asc
Description: PGP signature

