Gnome Shell's GVC creating a race condition involving the Xwayland server
Hi
I previously opened #2536 (closed) with some very incorrect details, so I feel as if though it would be less confusing to start this anew. I am sorry about this...
Anyway, it seems that currently. Gnome Shell master
, mutter master
, gjs master
(and even gjs 1.65.1
to be sure),
and checking out mozjs68
from https://github.com/ptomato/mozjs/ with
--enable-posix-nspr-emulation --enable-unaligned-private-values --with-system-zlib --with-system-icu --with-intl-api --enable-release --disable-debug-symbols --disable-debug AUTOCONF=autoconf --disable-jemalloc --enable-readline
is currently hanging upon startup. nested, and native. I was able to look at the stack trace of gnome-shell with GDB, I see it waiting indefinably for libgjc to connect to an X display (xcb_connect_to_display_with_auth_info()
) ...and in the stack trace of the Xwayland instance though, it is waiting to start up (xwl_screen_init()
)
As a test, I was able to get gnome-shell to start, and it's Xwayland instance also works, by making libgvc not call pa_context_new_with_proplist
with this workaround below.
diff --git a/subprojects/gvc/gvc-mixer-control.c b/subprojects/gvc/gvc-mixer-control.c
index 21fc233..432a211 100644
--- a/gvc-mixer-control.c
+++ b/gvc-mixer-control.c
@@ -3316,10 +3316,10 @@ gvc_mixer_new_pa_context (GvcMixerControl *self)
PA_PROP_APPLICATION_VERSION,
PACKAGE_VERSION);
- self->priv->pa_context = pa_context_new_with_proplist (self->priv->pa_api, NULL, proplist);
+// self->priv->pa_context = pa_context_new_with_proplist (self->priv->pa_api, NULL, proplist);
- pa_proplist_free (proplist);
- g_assert (self->priv->pa_context);
+// pa_proplist_free (proplist);
+// g_assert (self->priv->pa_context);
}
static void
Thanks