Hello Karo, dear Maintainer, I undusted my own "AMD Athlon(tm)" machine and got a current bookworm/testing on it.
And could reproduce the assert shown in seat0-greeter.log. It took some time, but I guess I found now the chain of events that lead to lightdm-gtk-greeter not starting up. At [1] the dri driver "nouveau_dri.so" gets tested if usable. That file is again linked to libz3.so.4, which uses in its static initializers this "pxor %xmm0,%xmm0" instruction. This pollutes the FPU registers, making it looking like there are some values at the FPU stack. This FPU register stack occupation stays and a few more stack positions get used until in [2] a "fld1" instructions wants to store another value at the FPU stack, which looks as it could not work as there are already too many values. Therefore the "_gtk_css_ease_value_new_cubic_bezier: assertion 'x1 <= 1.0' failed" gets printed and the function returns a NULL pointer. Now in [3] the function _gtk_css_array_value_new receives the NULL pointer which causes the message "_gtk_css_array_value_new: assertion 'content != NULL' failed". This returns now also a NULL pointer. And therefore finally the function gtk_css_style_property_register asserts, because it cannot accept the NULL as initial_value: "gtk_css_style_property_register: assertion failed: (initial_value != NULL)". Some how it looks like this "pxor %xmm0,%xmm0" instruction does not influence the FPU register stack at more modern CPUs [5]. So this bug seems to again boil down to libz3-4 using sse/sse2 instructions, even when just the static variables get initialized on shared object loading. Kind regards, Bernhard [1] (gdb) finish Run till exit from #0 0xb3a8a9d0 in operator new(unsigned int) () from /lib/i386-linux-gnu/libstdc++.so.6 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at ./src/util/memory_manager.cpp:39 39 in ./src/util/memory_manager.cpp 1: x/i $pc => 0xa85672de <_GLOBAL__sub_I_memory_manager.cpp(void)+62>: pxor %xmm0,%xmm0 (gdb) info float R7: Empty 0x3fff8000000000000000 R6: Empty 0x400be698000000000000 R5: Empty 0xbfff8000000000000000 R4: Empty 0x00000000000000000000 R3: Empty 0x00000000000000000000 R2: Empty 0x00000000000000000000 R1: Empty 0x00000000000000000000 =>R0: Empty 0x00000000000000000000 Status Word: 0x0020 PE TOP: 0 Control Word: 0x037f IM DM ZM OM UM PM PC: Extended Precision (64-bits) RC: Round to nearest Tag Word: 0xffff Instruction Pointer: 0x00:0x00000000 Operand Pointer: 0x00:0x00000000 Opcode: 0x0000 (gdb) bt #0 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at ./src/util/memory_manager.cpp:39 #1 _GLOBAL__sub_I_memory_manager.cpp(void) () at ./src/util/memory_manager.cpp:373 #2 0xb7fcdd6b in call_init (env=0x42f180, argv=0xbffffcc4, argc=1, l=<optimized out>) at ./elf/dl-init.c:70 #3 call_init (l=<optimized out>, argc=1, argv=0xbffffcc4, env=0x42f180) at ./elf/dl-init.c:26 #4 0xb7fcde5c in _dl_init (main_map=<optimized out>, argc=1, argv=0xbffffcc4, env=0x42f180) at ./elf/dl-init.c:117 #5 0xb7fd4d97 in call_dl_init (closure=0xbfffe150) at ./elf/dl-open.c:485 #6 0xb6b65934 in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at ./elf/dl-error-skeleton.c:182 #7 0xb7fd4d25 in dl_open_worker (a=0xbfffe298) at ./elf/dl-open.c:808 #8 0xb6b658d7 in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at ./elf/dl-error-skeleton.c:208 #9 0xb7fd50c0 in _dl_open (file=0xbfffe56c "/usr/lib/i386-linux-gnu/dri/nouveau_dri.so", mode=-2147483390, caller_dlopen=0xb2ee3885 <loader_open_driver_lib+229>, nsid=<optimized out>, argc=1, argv=0xbffffcc4, env=0x42f180) at ./elf/dl-open.c:886 #10 0xb6a7f848 in dlopen_doit (a=0xbfffe4fc) at ./dlfcn/dlopen.c:56 #11 0xb6b658d7 in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at ./elf/dl-error-skeleton.c:208 #12 0xb6b659a0 in __GI__dl_catch_error (objname=0xbfffe4b4, errstring=0xbfffe4b8, mallocedp=0xbfffe4b3, operate=0xb6a7f7d0 <dlopen_doit>, args=0xbfffe4fc) at ./elf/dl-error-skeleton.c:227 #13 0xb7fe1df8 in _rtld_catch_error (objname=0xbfffe4b4, errstring=0xbfffe4b8, mallocedp=0xbfffe4b3, operate=0xb6a7f7d0 <dlopen_doit>, args=0xbfffe4fc) at ./elf/dl-error-skeleton.c:260 #14 0xb6a7f297 in _dlerror_run (operate=<optimized out>, args=<optimized out>) at ./dlfcn/dlerror.c:138 #15 0xb6a7f918 in dlopen_implementation (dl_caller=<optimized out>, mode=258, file=0xbfffe56c "/usr/lib/i386-linux-gnu/dri/nouveau_dri.so") at ./dlfcn/dlopen.c:71 #16 ___dlopen (file=0xbfffe56c "/usr/lib/i386-linux-gnu/dri/nouveau_dri.so", mode=258) at ./dlfcn/dlopen.c:81 #17 0xb2ee3885 in loader_open_driver_lib (driver_name=0x4b29b0 "nouveau", lib_suffix=0xb2ef089c "_dri", search_path_vars=0xb2f0f3c4 <search_path_vars>, default_search_path=0xb2ef0800 "/usr/lib/i386-linux-gnu/dri:\\$${ORIGIN}/dri:/usr/lib/dri", warn_on_fail=true) at ../src/loader/loader.c:636 #18 0xb2ee3a00 in loader_open_driver (driver_name=0x4b29b0 "nouveau", out_driver_handle=0x46abb4, search_path_vars=0xb2f0f3c4 <search_path_vars>) at ../src/loader/loader.c:679 #19 0xb2ec8f9b in driOpenDriver (driverName=0x4b29b0 "nouveau", out_driver_handle=0x46abb4) at ../src/glx/dri_common.c:87 #20 0xb2ede7fd in dri2CreateScreen (screen=0, priv=0x469020) at ../src/glx/dri2_glx.c:1103 #21 0xb2ed1772 in AllocAndFetchScreenConfigs (priv=0x469020, dpy=0x43d5d0) at ../src/glx/glxext.c:842 #22 __glXInitialize (dpy=0x43d5d0) at ../src/glx/glxext.c:973 #23 0xb2ecde3b in GetGLXPrivScreenConfig (ppsc=<synthetic pointer>, ppriv=<synthetic pointer>, scrn=0, dpy=0x43d5d0) at ../src/glx/glxcmds.c:173 #24 glXQueryServerString (dpy=0x43d5d0, screen=0, name=2) at ../src/glx/glxcmds.c:1366 #25 0xb69595f1 in epoxy_glx_version (dpy=0x43d5d0, screen=0) at ../src/dispatch_glx.c:80 #26 0xb7c6a8bb in gdk_x11_screen_init_gl (screen=0x453008 [GdkX11Screen]) at ../../../../../gdk/x11/gdkglcontext-x11.c:873 #27 0xb7c6ac3f in _gdk_x11_screen_update_visuals_for_gl (screen=0x453008 [GdkX11Screen]) at ../../../../../gdk/x11/gdkglcontext-x11.c:1217 #28 0xb7c73ef7 in _gdk_x11_screen_init_visuals (screen=0x453008 [GdkX11Screen]) at ../../../../../gdk/x11/gdkvisual-x11.c:309 #29 0xb7c70afe in _gdk_x11_screen_new (display=0x44e0e0 [GdkX11Display], screen_number=0) at ../../../../../gdk/x11/gdkscreen-x11.c:1103 #30 0xb7c603d4 in _gdk_x11_display_open (display_name=0x0) at ../../../../../gdk/x11/gdkdisplay-x11.c:1606 #31 0xb7c2fb8d in gdk_display_manager_open_display (manager=0x436e60 [GdkDisplayManager], name=0x0) at ../../../../gdk/gdkdisplaymanager.c:462 #32 0xb7c2e041 in gdk_display_open (display_name=0x0) at ../../../../gdk/gdkdisplay.c:1980 #33 0xb7c24e27 in gdk_display_open_default () at ../../../../gdk/gdk.c:467 #34 0xb743c1d8 in gtk_init_check (argc=0xbffffc10, argv=0xbffffb9c) at ../../../../gtk/gtkmain.c:1110 #35 gtk_init_check (argc=0xbffffc10, argv=0xbffffb9c) at ../../../../gtk/gtkmain.c:1102 #36 0xb743c22c in gtk_init (argc=0xbffffc10, argv=0xbffffb9c) at ../../../../gtk/gtkmain.c:1167 #37 0x00408ed1 in main (argc=<optimized out>, argv=<optimized out>) at lightdm-gtk-greeter.c:2910 (gdb) stepi 0xa85672e2 in std::__mutex_base::__mutex_base (this=0x4ae0d0) at /usr/include/c++/12/bits/std_mutex.h:65 warning: Source file is more recent than executable. 65 constexpr __mutex_base() noexcept = default; 1: x/i $pc => 0xa85672e2 <_GLOBAL__sub_I_memory_manager.cpp(void)+66>: movups %xmm0,(%eax) (gdb) info float R7: Valid 0x3fff8000000000000000 +1 R6: Valid 0x400be698000000000000 +7379 R5: Valid 0xbfff8000000000000000 -1 R4: Zero 0x00000000000000000000 +0 R3: Zero 0x00000000000000000000 +0 R2: Zero 0x00000000000000000000 +0 R1: Zero 0x00000000000000000000 +0 =>R0: Special 0xffff0000000000000000 Unsupported Status Word: 0x0020 PE TOP: 0 Control Word: 0x037f IM DM ZM OM UM PM PC: Extended Precision (64-bits) RC: Round to nearest Tag Word: 0x0156 Instruction Pointer: 0x00:0x00000000 Operand Pointer: 0x00:0x00000000 Opcode: 0x0000 (gdb) $ libtree "/usr/lib/i386-linux-gnu/dri/nouveau_dri.so" ... ├── libLLVM-14.so.1 [ld.so.conf] │ ├── libz3.so.4 [ld.so.conf] ... [2] (gdb) stepi 154 g_return_val_if_fail (x1 <= 1.0, NULL); 1: x/i $pc => 0xb73647eb <_gtk_css_ease_value_new_cubic_bezier+43>: fld1 2: $st0 = 0.25 3: $st1 = 1 (gdb) info float R7: Zero 0x00000000000000000000 +0 R6: Valid 0x3ffbccccccccccccd000 +0.1000000000000000056 R5: Valid 0x3ffd8000000000000000 +0.25 R4: Valid 0x3fff8000000000000000 +1 =>R3: Valid 0x3ffd8000000000000000 +0.25 R2: Zero 0x00000000000000000000 +0 R1: Zero 0x00000000000000000000 +0 R0: Special 0xffff0000000000000000 Unsupported Status Word: 0x1861 IE PE SF TOP: 3 Control Word: 0x037f IM DM ZM OM UM PM PC: Extended Precision (64-bits) RC: Round to nearest Tag Word: 0x4016 Instruction Pointer: 0x00:0x00000000 Operand Pointer: 0x00:0x00000000 Opcode: 0x0000 (gdb) stepi 0xb73647ed 154 g_return_val_if_fail (x1 <= 1.0, NULL); 1: x/i $pc => 0xb73647ed <_gtk_css_ease_value_new_cubic_bezier+45>: fcomi %st(1),%st 2: $st0 = -nan(0xc000000000000000) 3: $st1 = 0.25 (gdb) info float R7: Zero 0x00000000000000000000 +0 R6: Valid 0x3ffbccccccccccccd000 +0.1000000000000000056 R5: Valid 0x3ffd8000000000000000 +0.25 R4: Valid 0x3fff8000000000000000 +1 R3: Valid 0x3ffd8000000000000000 +0.25 =>R2: Special 0xffffc000000000000000 Real Indefinite (QNaN) R1: Zero 0x00000000000000000000 +0 R0: Special 0xffff0000000000000000 Unsupported Status Word: 0x1261 IE PE SF C1 TOP: 2 Control Word: 0x037f IM DM ZM OM UM PM PC: Extended Precision (64-bits) RC: Round to nearest Tag Word: 0x4026 Instruction Pointer: 0x00:0x00000000 Operand Pointer: 0x00:0x00000000 Opcode: 0x0000 (gdb) bt #0 0xb73647ed in _gtk_css_ease_value_new_cubic_bezier (x1=0.25, y1=0.10000000000000001, x2=0.25, y2=1) at ../../../../gtk/gtkcsseasevalue.c:154 #1 0xb739222a in _gtk_css_style_property_init_properties () at ../../../../gtk/gtkcssstylepropertyimpl.c:1722 #2 0xb74f3b97 in _gtk_style_property_init_properties () at ../../../../gtk/gtkstyleproperty.c:231 #3 _gtk_style_property_init_properties () at ../../../../gtk/gtkstyleproperty.c:222 #4 _gtk_style_property_lookup (name=0x19b8910 "padding") at ../../../../gtk/gtkstyleproperty.c:273 #5 0xb737f0ec in parse_declaration (ruleset=0xbfe42f14, scanner=0x19e19a8) at ../../../../gtk/gtkcssprovider.c:1422 #6 parse_declarations (ruleset=<optimized out>, scanner=<optimized out>) at ../../../../gtk/gtkcssprovider.c:1583 #7 parse_ruleset (scanner=<optimized out>) at ../../../../gtk/gtkcssprovider.c:1615 #8 parse_statement (scanner=<optimized out>) at ../../../../gtk/gtkcssprovider.c:1644 #9 parse_stylesheet (scanner=<optimized out>) at ../../../../gtk/gtkcssprovider.c:1660 #10 gtk_css_provider_load_internal (css_provider=0x197fd10 [GtkCssProvider], parent=parent@entry=0x19e0050, file=file@entry=0x19d3740, text=<optimized out>, error=0x0) at ../../../../gtk/gtkcssprovider.c:1787 #11 0xb737f6f9 in parse_import (scanner=0x19e0050) at ../../../../gtk/gtkcssprovider.c:1053 #12 parse_at_keyword (scanner=0x19e0050) at ../../../../gtk/gtkcssprovider.c:1301 #13 parse_statement (scanner=0x19e0050) at ../../../../gtk/gtkcssprovider.c:1642 #14 parse_stylesheet (scanner=<optimized out>) at ../../../../gtk/gtkcssprovider.c:1660 #15 gtk_css_provider_load_internal (css_provider=css_provider@entry=0x197fd10 [GtkCssProvider], parent=parent@entry=0x0, file=file@entry=0x19d3320, text=<optimized out>, error=0x0) at ../../../../gtk/gtkcssprovider.c:1787 #16 0xb738062c in gtk_css_provider_load_from_file (css_provider=0x197fd10 [GtkCssProvider], file=0x19d3320, error=0x0) at ../../../../gtk/gtkcssprovider.c:1890 #17 0xb73807b9 in gtk_css_provider_load_from_resource (css_provider=0x197fd10 [GtkCssProvider], resource_path=0x19815e0 "/org/gtk/libgtk/theme/Adwaita/gtk.css") at ../../../../gtk/gtkcssprovider.c:1962 #18 0xb7380b5d in _gtk_css_provider_load_named (provider=0x197fd10 [GtkCssProvider], name=0x19ce670 "Adwaita", variant=0x0) at ../../../../gtk/gtkcssprovider.c:2145 #19 0xb74d3abf in settings_update_theme (settings=settings@entry=0x19ad0e8 [GtkSettings]) at ../../../../gtk/gtksettings.c:3321 #20 0xb74d6ab7 in settings_init_style (settings=0x19ad0e8 [GtkSettings]) at ../../../../gtk/gtksettings.c:1910 #21 gtk_settings_create_for_display (display=<optimized out>) at ../../../../gtk/gtksettings.c:1996 #22 gtk_settings_get_for_display (display=<optimized out>) at ../../../../gtk/gtksettings.c:2028 #23 0xb74d6d31 in gtk_settings_get_default () at ../../../../gtk/gtksettings.c:2064 #24 0xb738c935 in gtk_css_static_style_get_default () at ../../../../gtk/gtkcssstaticstyle.c:163 #25 0xb7376991 in gtk_css_node_init (cssnode=0x19c0140 [GtkCssNode]) at ../../../../gtk/gtkcssnode.c:667 #26 0xb707af36 in g_type_create_instance (type=0x19c84e0 [GtkCssWidgetNode/GtkCssNode]) at ../../../gobject/gtype.c:1925 #27 0xb705e2d6 in g_object_new_internal (class=class@entry=0x19c8b50, params=params@entry=0x0, n_params=n_params@entry=0) at ../../../gobject/gobject.c:2226 #28 0xb705f8f3 in g_object_new_with_properties (object_type=<optimized out>, n_properties=<optimized out>, names=<optimized out>, values=<optimized out>) at ../../../gobject/gobject.c:2387 #29 0xb70603b7 in g_object_new (object_type=0x19c84e0 [GtkCssWidgetNode/GtkCssNode], first_property_name=0x0) at ../../../gobject/gobject.c:2035 #30 0xb7395b32 in gtk_css_widget_node_new (widget=0x19c9230 [GtkWidget]) at ../../../../gtk/gtkcsswidgetnode.c:302 #31 0xb759385b in gtk_widget_init (instance=0x19c9230 [GtkWidget], g_class=0x19bcdc0) at ../../../../gtk/gtkwidget.c:4472 #32 0xb707af36 in g_type_create_instance (type=0x19bccf0 [GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]) at ../../../gobject/gtype.c:1925 #33 0xb705e2d6 in g_object_new_internal (class=class@entry=0x19bcdc0, params=params@entry=0xbfe434dc, n_params=n_params@entry=1) at ../../../gobject/gobject.c:2226 #34 0xb705fe4a in g_object_new_valist (object_type=<optimized out>, first_property_name=<optimized out>, var_args=<optimized out>) at ../../../gobject/gobject.c:2563 #35 0xb7060399 in g_object_new (object_type=0x19bccf0 [GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned], first_property_name=0xb765c10f "type") at ../../../gobject/gobject.c:2038 #36 0xb75b348d in gtk_window_new (type=GTK_WINDOW_TOPLEVEL) at ../../../../gtk/gtkwindow.c:2334 #37 0x0044c02e in main (argc=<optimized out>, argv=<optimized out>) at lightdm-gtk-greeter.c:2917 [3] (gdb) list 1721 _gtk_css_array_value_new (_gtk_css_number_value_new (0, GTK_CSS_S))); 1722 gtk_css_style_property_register ("transition-timing-function", 1723 GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION, 1724 G_TYPE_NONE, 1725 0, 1726 0, 1727 transition_timing_function_parse, 1728 NULL, 1729 NULL, 1730 _gtk_css_array_value_new ( 1731 _gtk_css_ease_value_new_cubic_bezier (0.25, 0.1, 0.25, 1.0))); 1732 gtk_css_style_property_register ("transition-delay", [4] (gdb) cont Continuing. Thread 1 "lightdm-gtk-gre" received signal SIGABRT, Aborted. 0xb7f49559 in __kernel_vsyscall () 1: x/i $pc => 0xb7f49559 <__kernel_vsyscall+9>: pop %ebp 2: $st0 = <invalid float value> 3: $st1 = 0 (gdb) bt 10 #0 0xb7f49559 in __kernel_vsyscall () #1 0xb6a85ec7 in __pthread_kill_implementation (threadid=threadid@entry=3046353216, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:43 #2 0xb6a85f3b in __pthread_kill_internal (signo=6, threadid=3046353216) at ./nptl/pthread_kill.c:78 #3 0xb6a36b41 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 #4 0xb6a20262 in __GI_abort () at ./stdlib/abort.c:79 #5 0xb6cc5eb5 in g_assertion_message (domain=0xb75fa047 "Gtk", file=0xb762448c "../../../../gtk/gtkcssstylepropertyimpl.c", line=87, func=0xb76245a0 <__func__.0> "gtk_css_style_property_register", message=0x19b2a40 "assertion failed: (initial_value != NULL)") at ../../../glib/gtestutils.c:3256 #6 0xb6d2862c in g_assertion_message_expr (domain=0xb75fa047 "Gtk", file=0xb762448c "../../../../gtk/gtkcssstylepropertyimpl.c", line=87, func=0xb76245a0 <__func__.0> "gtk_css_style_property_register", expr=0xb76242e8 "initial_value != NULL") at ../../../glib/gtestutils.c:3282 #7 0xb7390c48 in gtk_css_style_property_register (name=name@entry=0xb7623c4b "transition-timing-function", expected_id=expected_id@entry=68, value_type=value_type@entry=0x4 [void], flags=0, affects=0, parse_value=0xb738f5d0 <transition_timing_function_parse>, query_value=0x0, assign_value=0x0, initial_value=0x0) at ../../../../gtk/gtkcssstylepropertyimpl.c:89 #8 0xb739225e in _gtk_css_style_property_init_properties () at ../../../../gtk/gtkcssstylepropertyimpl.c:1722 #9 0xb74f3b97 in _gtk_style_property_init_properties () at ../../../../gtk/gtkstyleproperty.c:231 (More stack frames follow...) [5] (VM running at "AMD Ryzen 7 1700" with -cpu host) (gdb) std::__mutex_base::__mutex_base (this=0x40ebb0) at /usr/include/c++/12/bits/std_mutex.h:65 warning: Source file is more recent than executable. 65 constexpr __mutex_base() noexcept = default; 1: x/i $pc => 0xb67672de <_GLOBAL__sub_I_memory_manager.cpp(void)+62>: pxor %xmm0,%xmm0 (gdb) info float R7: Empty 0x00000000000000000000 R6: Empty 0x00000000000000000000 R5: Empty 0x00000000000000000000 R4: Empty 0x00000000000000000000 R3: Empty 0x00000000000000000000 R2: Empty 0x00000000000000000000 R1: Empty 0x00000000000000000000 =>R0: Empty 0x00000000000000000000 Status Word: 0x0000 TOP: 0 Control Word: 0x037f IM DM ZM OM UM PM PC: Extended Precision (64-bits) RC: Round to nearest Tag Word: 0xffff Instruction Pointer: 0x00:0x00000000 Operand Pointer: 0x00:0x00000000 Opcode: 0x0000 (gdb) nexti 0xb67672e2 65 constexpr __mutex_base() noexcept = default; 1: x/i $pc => 0xb67672e2 <_GLOBAL__sub_I_memory_manager.cpp(void)+66>: movups %xmm0,(%eax) (gdb) info float R7: Empty 0x00000000000000000000 R6: Empty 0x00000000000000000000 R5: Empty 0x00000000000000000000 R4: Empty 0x00000000000000000000 R3: Empty 0x00000000000000000000 R2: Empty 0x00000000000000000000 R1: Empty 0x00000000000000000000 =>R0: Empty 0x00000000000000000000 Status Word: 0x0000 TOP: 0 Control Word: 0x037f IM DM ZM OM UM PM PC: Extended Precision (64-bits) RC: Round to nearest Tag Word: 0xffff Instruction Pointer: 0x00:0x00000000 Operand Pointer: 0x00:0x00000000 Opcode: 0x0000