From 2d312cd28bd869a1e47f145f0aa8418388ffefea Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Sun, 8 Dec 2024 18:36:59 +0000 Subject: [PATCH] config: temporarily set xwaylandPersistence to 'yes' by default (#2414) ...to avoid a bug that is present in wlroots <0.18.2 and which has the potential to crash the compositor when performing a drag-and-drop action at the same time as the XWayland server is shutting down. This will be reverted when wlroots-0.18.2 can be linked with. Related-to: #2371 --- docs/labwc-config.5.scd | 10 ++++++++-- docs/rc.xml.all | 2 +- src/config/rcxml.c | 13 ++++++++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/labwc-config.5.scd b/docs/labwc-config.5.scd index aff0e62a..d9f939fa 100644 --- a/docs/labwc-config.5.scd +++ b/docs/labwc-config.5.scd @@ -172,7 +172,7 @@ this is for compatibility with Openbox. no no no - no + yes ``` @@ -219,7 +219,13 @@ this is for compatibility with Openbox. ** [yes|no] Keep XWayland alive even when no clients are connected, rather than using a "lazy" policy that allows the server to launch on demand and die - when it is no longer needed. Default is no. + when it is no longer needed. Default is yes. + + This is only temporarily defaulting to yes to avoid a bug that is + present in wlroots <0.18.2 resulting in a compositor crash when + performing a drag-and-drop action at the same time as the XWayland + server is shutting down. This will be reverted to a default "no" when + wlroots-0.18.2 can be linked with. Note: changing this setting requires a restart of labwc. diff --git a/docs/rc.xml.all b/docs/rc.xml.all index ae66fe4c..aa24838c 100644 --- a/docs/rc.xml.all +++ b/docs/rc.xml.all @@ -13,7 +13,7 @@ no no no - no + yes diff --git a/src/config/rcxml.c b/src/config/rcxml.c index cb064fc0..a8cb9d3b 100644 --- a/src/config/rcxml.c +++ b/src/config/rcxml.c @@ -1088,6 +1088,17 @@ entry(xmlNode *node, char *nodename, char *content) } } else if (!strcasecmp(nodename, "xwaylandPersistence.core")) { set_bool(content, &rc.xwayland_persistence); + + /* + * TODO: Temporary warning message. Revert when wlroots-0.18.2 + * can be linked with. + */ + if (!rc.xwayland_persistence) { + wlr_log(WLR_ERROR, "setting xwaylandPersistence to 'no' " + "is not encouraged unless wlroots-0.18.2 is used " + "since it has a potential risk of crashing the " + "entire session. See #2371 for details."); + } } else if (!strcasecmp(nodename, "x.cascadeOffset.placement")) { rc.placement_cascade_offset_x = atoi(content); } else if (!strcasecmp(nodename, "y.cascadeOffset.placement")) { @@ -1452,7 +1463,7 @@ rcxml_init(void) rc.adaptive_sync = LAB_ADAPTIVE_SYNC_DISABLED; rc.allow_tearing = false; rc.reuse_output_mode = false; - rc.xwayland_persistence = false; + rc.xwayland_persistence = true; init_font_defaults(&rc.font_activewindow); init_font_defaults(&rc.font_inactivewindow);