Bug 1887969
Summary: | metacity crashes / dies in installer images, preventing installer from running | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Adam Williamson <awilliam> |
Component: | anaconda | Assignee: | Anaconda Maintenance Team <anaconda-maint-list> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | urgent | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | alberts.muktupavels, anaconda-maint-list, caillon+fedoraproject, caolanm, ego.cordatus, fmuellner, gnome-sig, jkonecny, john.j5live, jonathan, kellin, mclasen, mpitt, otaylor, rhughes, robatino, rstrode, vanmeeuwen+fedora, vponcova, wwoods, yselkowi |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | openqa | ||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-10-16 17:25:15 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1829022 |
Description
Adam Williamson
2020-10-13 16:37:39 UTC
OK, so here's a better backtrace: === #0 g_log_structured_array (log_level=<optimized out>, fields=0x7ffc32ed00a0, n_fields=4) at ../glib/gmessages.c:554 writer_func = <optimized out> writer_user_data = <optimized out> recursion = <optimized out> depth = <optimized out> __func__ = "g_log_structured_array" _g_boolean_var_ = <optimized out> #1 0x00007f9405c25ae5 in g_log_default_handler (log_domain=log_domain@entry=0x7f9405ec46c4 "GLib-GIO", log_level=log_level@entry=6, message=message@entry=0x55a895a65430 "Settings schema 'org.gnome.metacity' does not contain a key named 'compositor'", unused_data=unused_data@entry=0x0) at ../glib/gmessages.c:3123 fields = {{key = 0x7f9405c7b4e5 "GLIB_OLD_LOG_API", value = 0x7f9405cd6781, length = -1}, { key = 0x7f9405c7b426 "MESSAGE", value = 0x55a895a65430, length = -1}, {key = 0x7f9405c7b439 "PRIORITY", value = 0x7f9405c756ab, length = -1}, {key = 0x7f9405c7b493 "GLIB_DOMAIN", value = 0x7f9405ec46c4, length = -1}} n_fields = <optimized out> #2 0x00007f9405c26d16 in g_logv (log_domain=0x7f9405ec46c4 "GLib-GIO", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1350 domain = 0x0 data = 0x0 depth = <optimized out> log_func = 0x7f9405c25a30 <g_log_default_handler> domain_fatal_mask = <optimized out> masquerade_fatal = 0 test_level = 6 was_fatal = <optimized out> was_recursion = <optimized out> buffer = <optimized out> msg = 0x55a895a65430 "Settings schema 'org.gnome.metacity' does not contain a key named 'compositor'" msg_alloc = 0x55a895a65430 "Settings schema 'org.gnome.metacity' does not contain a key named 'compositor'" i = 2 size = <optimized out> #3 0x00007f9405c26faf in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1415 args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7ffc32ed02c0, reg_save_area = 0x7ffc32ed0200}} #4 0x00007f9405e70731 in g_settings_schema_get_value (key=<optimized out>, schema=<optimized out>) at ../gio/gsettingsschema.c:982 s = 0x0 iter = <optimized out> value = <optimized out> s = <optimized out> iter = <optimized out> value = <optimized out> __func__ = <optimized out> _g_boolean_var_ = <optimized out> _g_boolean_var_ = <optimized out> #5 g_settings_schema_get_value (key=0x55a894bc9204 "compositor", schema=0x55a89596b540) at ../gio/gsettingsschema.c:968 s = 0x55a89596b540 iter = <optimized out> value = 0x0 s = <optimized out> iter = <optimized out> value = <optimized out> __func__ = <optimized out> _g_boolean_var_ = <optimized out> _g_boolean_var_ = <optimized out> #6 g_settings_schema_key_init (key=key@entry=0x7ffc32ed0320, schema=0x55a89596b540, name=name@entry=0x55a894bc9204 "compositor") at ../gio/gsettingsschema.c:1262 iter = <optimized out> data = 0x55a895a62410 code = 0 '\000' #7 0x00007f9405e72b2d in g_settings_get_enum (settings=0x55a89596b4d0, key=0x55a894bc9204 "compositor") at ../gio/gsettings.c:1365 skey = {schema = 0x0, name = 0x0, is_flags = 0, is_enum = 0, strinfo = 0x0, strinfo_length = 0, unparsed = 0x0, lc_char = 0 '\000', type = 0x0, minimum = 0x0, maximum = 0x0, default_value = 0x0, desktop_overrides = 0x0, ref_count = 0} value = <optimized out> result = <optimized out> __func__ = "g_settings_get_enum" #8 0x000055a894b7ebaa in main () No symbol table info available. === problem is obviously "Settings schema 'org.gnome.metacity' does not contain a key named 'compositor'". Here's the last few frames of the backtrace from metacity (I was missing metacity debuginfo), confirming my guess as to where we're crashing: === #8 0x000055a894b7ebaa in handle_preference_init_enum () at core/prefs.c:440 cursor = 0x55a894be8500 <preferences_enum+256> cursor = <optimized out> #9 meta_prefs_init () at core/prefs.c:868 settings = <optimized out> settings = <optimized out> #10 main (argc=<optimized out>, argv=<optimized out>) at core/main.c:518 act = {__sigaction_handler = {sa_handler = 0x55a894b97ec0 <sigterm_handler>, sa_sigaction = 0x55a894b97ec0 <sigterm_handler>}, sa_mask = {__val = {0, 94182552108320, 0, 140273723508985, 94182552108320, 0, 11, 94204992242258, 0, 193, 13, 140273723500222, 33, 3, 219043332109, 140273723508771}}, sa_flags = 0, sa_restorer = 0x50} empty_mask = {__val = {0, 94182552108320, 0, 140273723508985, 94182552108320, 0, 11, 94204992242258, 0, 193, 13, 140273723500222, 33, 3, 219043332109, 140273723508771}} meta_args = {save_file = 0x0, display_name = 0x55a895908830 ":1", client_id = 0x0, replace_wm = <optimized out>, disable_sm = 1, print_version = <optimized out>, sync = <optimized out>, composite = <optimized out>, no_composite = <optimized out>, no_force_fullscreen = <optimized out>, compositor = <optimized out>, compositor_set = <optimized out>} channel = 0x7ffc32ed06e0 __func__ = "main" === Beyond that, I see the commit clearly *did* add a key named 'compositor' to /usr/share/glib-2.0/schemas/org.gnome.metacity.gschema.xml . However, a complicating factor is that in the anaconda environment, we dump that file in the streamlining stuff from lorax: https://github.com/weldr/lorax/blob/master/share/templates.d/99-generic/runtime-cleanup.tmpl#L109 However, this is still strange. It seems that before 3.38.0 metacity could start up successfully even without the schema file in place, but with 3.38.0 it can't. However, while the 'compositor' key is new in 3.38.0, the *pattern* is not. `preferences_enum` already contained a very similar item: { { "placement-mode", SCHEMA_METACITY, META_PREF_PLACEMENT_MODE, }, &placement_mode, }, which so far as I can tell worked / works exactly like "compositor". And it comes *earlier* in the array. But somehow, we're not choking on *that* one during startup, but we *are* choking on compositor. I can't see what difference between the two would explain this. There's also this one which similarly comes from a schema we strip out of the installer environment: { { "type", SCHEMA_METACITY_THEME, META_PREF_THEME_TYPE, }, ¤t_theme_type, }, and again we don't choke on that one. So I'm still a bit baffled. I tested including the schema files in the anaconda installer environment, it didn't help... I note that the enum org.gnome.metacity.MetaPlacementMode (used for the placement-mode key I mentioned above) is defined in org.gnome.metacity.gschema.xml , but the enum org.gnome.metacity.MetaCompositorType (used for our problematic "compositor" key) is not... ...however, the use of gsettings_ENUM_NAMESPACE and gsettings_ENUM_FILES in data/schemas/Makefile.am causes an org.gnome.metacity.enums.xml to be generated and installed which does define that enum. Hmm. Even more hmm: if I build an installer image with the /usr/bin/gsettings binary left in and do 'gsettings get org.gnome.metacity compositor', I get the result 'xrender'. Which looks like there *is* a key called 'compositor' and it works fine. So why is metacity blowing up on this? If I boot a live image to runlevel 3, install metacity and do 'startx /usr/bin/metacity --sm-disable', it works, metacity doesn't crash. So...that does point to this being to do with the installer environment somehow...but I'm not sure how... FTR, we see this in the anaconda rpm-tests as well now: https://github.com/rhinstaller/anaconda/pull/2923/checks?check_run_id=1251662017#step:5:2384 /github/home/rpmbuild/BUILDROOT/anaconda-34.8-1.fc34.x86_64/usr/share/anaconda/window-manager/glib-2.0/schemas/org.gnome.metacity.gschema.xml:32:1 Error on line 32 char 1: <enum id='org.gnome.metacity.MetaCompositorType'> not (yet) defined.. --strict was specified; exiting. Thus just trying to build the package may be a faster way to reproduce/test this. (In reply to Adam Williamson from comment #7) > If I boot a live image to runlevel 3, install metacity and do 'startx > /usr/bin/metacity --sm-disable', it works, metacity doesn't crash. So...that > does point to this being to do with the installer environment somehow...but > I'm not sure how... I would rather wait for explanation why this is happening from the desktop team before creating hacks in Anaconda.(In reply to Martin Pitt from comment #8) > FTR, we see this in the anaconda rpm-tests as well now: > https://github.com/rhinstaller/anaconda/pull/2923/ > checks?check_run_id=1251662017#step:5:2384 > > /github/home/rpmbuild/BUILDROOT/anaconda-34.8-1.fc34.x86_64/usr/share/ > anaconda/window-manager/glib-2.0/schemas/org.gnome.metacity.gschema.xml:32:1 > Error on line 32 char 1: <enum id='org.gnome.metacity.MetaCompositorType'> > not (yet) defined.. --strict was specified; exiting. > > Thus just trying to build the package may be a faster way to reproduce/test > this. I saw that too. Thanks for looking into that. We really need gating for our test environment... Is generated org.gnome.metacity.enums.xml file installed in glib-2.0/schemas? "ln -s -f /usr/share/glib-2.0/schemas/org.gnome.metacity.gschema.xml /github/home/rpmbuild/BUILDROOT/anaconda-34.8-1.fc34.x86_64/usr/share/anaconda/window-manager/glib-2.0/schemas" From where that comes? You need to create symbolic link for org.gnome.metacity.enums.xml. Looks like it needs to be added here: https://github.com/rhinstaller/anaconda/blob/master/data/window-manager/config/Makefile.am#L29 Thanks Alberts! I sent a fix to https://github.com/rhinstaller/anaconda/pull/2926 which seems to work. Build with the fix has been done, we'll check test results of next compose to confirm the fix. Hmm, so I actually forgot to check back on this for a couple days. *This* crash does seem to be fixed, but metacity still isn't starting, with a different crash: 12:02:53,100 CRIT systemd-coredump:Process 1825 (metacity) of user 0 dumped core.#012#012Stack trace of thread 1825:#012#0 0x00007f4bc77a0975 raise (libc.so.6 + 0x3d975)#012#1 0x00007f4bc77898a4 abort (libc.so.6 + 0x268a4)#012#2 0x00007f4bc77e3127 __libc_message (libc.so.6 + 0x80127)#012#3 0x00007f4bc77eae1c malloc_printerr (libc.so.6 + 0x87e1c)#012#4 0x00007f4bc77ed2d2 free_check (libc.so.6 + 0x8a2d2)#012#5 0x00007f4bc8a5c99d XResClientIdsDestroy (libXRes.so.1 + 0x199d)#012#6 0x00005578b8fabb5f meta_window_get_client_pid (metacity + 0x46b5f)#012#7 0x00005578b8fabbf9 set_title_text (metacity + 0x46bf9)#012#8 0x00005578b8fabf0a set_window_title (metacity + 0x46f0a)#012#9 0x00005578b8faf8d8 reload_net_wm_name.lto_priv.0 (metacity + 0x4a8d8)#012#10 0x00005578b8fa2f0a meta_window_new (metacity + 0x3df0a)#012#11 0x00005578b8f89904 meta_display_open (metacity + 0x24904)#012#12 0x00005578b8f781b9 main (metacity + 0x131b9)#012#13 0x00007f4bc778b182 __libc_start_main (libc.so.6 + 0x28182)#012#14 0x00005578b8f7885e _start (metacity + 0x1385e)#012#012Stack trace of thread 1833:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc57d7dbb thread_function (swrast_dri.so + 0x685dbb)#012#2 0x00007f4bc57d76a7 impl_thrd_routine (swrast_dri.so + 0x6856a7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1840:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc55e3f2b util_queue_thread_func (swrast_dri.so + 0x491f2b)#012#2 0x00007f4bc55e39f7 impl_thrd_routine (swrast_dri.so + 0x4919f7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1839:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc55e3f2b util_queue_thread_func (swrast_dri.so + 0x491f2b)#012#2 0x00007f4bc55e39f7 impl_thrd_routine (swrast_dri.so + 0x4919f7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1838:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc55e3f2b util_queue_thread_func (swrast_dri.so + 0x491f2b)#012#2 0x00007f4bc55e39f7 impl_thrd_routine (swrast_dri.so + 0x4919f7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1837:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc55e3f2b util_queue_thread_func (swrast_dri.so + 0x491f2b)#012#2 0x00007f4bc55e39f7 impl_thrd_routine (swrast_dri.so + 0x4919f7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1836:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc57d5223 lp_cs_tpool_worker (swrast_dri.so + 0x683223)#012#2 0x00007f4bc57d51b7 impl_thrd_routine (swrast_dri.so + 0x6831b7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1835:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc57d5223 lp_cs_tpool_worker (swrast_dri.so + 0x683223)#012#2 0x00007f4bc57d51b7 impl_thrd_routine (swrast_dri.so + 0x6831b7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1834:#012#0 0x00007f4bc793f452 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf452)#012#1 0x00007f4bc57d7dbb thread_function (swrast_dri.so + 0x685dbb)#012#2 0x00007f4bc57d76a7 impl_thrd_routine (swrast_dri.so + 0x6856a7)#012#3 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#4 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1864:#012#0 0x00007f4bc785994f __poll (libc.so.6 + 0xf694f)#012#1 0x00007f4bc7cfdb1e g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xa2b1e)#012#2 0x00007f4bc7caa41f g_main_context_iteration (libglib-2.0.so.0 + 0x4f41f)#012#3 0x00007f4bc7cac051 glib_worker_main (libglib-2.0.so.0 + 0x51051)#012#4 0x00007f4bc7cd9f2e g_thread_proxy (libglib-2.0.so.0 + 0x7ef2e)#012#5 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#6 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1865:#012#0 0x00007f4bc785994f __poll (libc.so.6 + 0xf694f)#012#1 0x00007f4bc7cfdb1e g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xa2b1e)#012#2 0x00007f4bc7caa41f g_main_context_iteration (libglib-2.0.so.0 + 0x4f41f)#012#3 0x00007f4bbba5564d dconf_gdbus_worker_thread (libdconfsettings.so + 0x664d)#012#4 0x00007f4bc7cd9f2e g_thread_proxy (libglib-2.0.so.0 + 0x7ef2e)#012#5 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#6 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33)#012#012Stack trace of thread 1866:#012#0 0x00007f4bc785994f __poll (libc.so.6 + 0xf694f)#012#1 0x00007f4bc7cfdb1e g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xa2b1e)#012#2 0x00007f4bc7cac6cb g_main_loop_run (libglib-2.0.so.0 + 0x516cb)#012#3 0x00007f4bc7f216b6 gdbus_shared_thread_func.lto_priv.0 (libgio-2.0.so.0 + 0x1086b6)#012#4 0x00007f4bc7cd9f2e g_thread_proxy (libglib-2.0.so.0 + 0x7ef2e)#012#5 0x00007f4bc79393f9 start_thread (libpthread.so.0 + 0x93f9)#012#6 0x00007f4bc7864b33 __clone (libc.so.6 + 0x101b33) I'll backtrace that one and file a new bug. New bug is https://bugzilla.redhat.com/show_bug.cgi?id=1888993 . |